Node.js初学

Node APi学习

fs读取模块

// 1. 引入fs模块 , node里面几乎所有的标准库都要先引入才能使用
const fs = require('fs')
// 2. 调用readFile方法 , 并指定编码
fs.readFile('./page/index.html','utf-8',(error,data)=>{
  console.log(data)
})

path模块

path.join
path.resolve

const path = require('path')
const dir = path.join(__dirname,'../page/index.html')
const dir = path.resolve('../page/index.html')

NodeJs服务器开发

服务器代码

ip+端口(NodeJS实现一个服务器的代码)

// 1. 引入http协议,node里面已经帮我们封装好了关于这部分的API
const http = require('http')
// 2. 创建一个服务器对象
const server = http.createServer()
// 3. 绑定ip和端口
server.listen(8080,'127.0.0.1')
// 4. 服务器对象监听浏览器的请求
server.on('request',(request,response)=>{
	response.setHeader('Content-Type','text/html;charset=utf-8')//中文乱码问题
	// 5. 响应数据回浏览器
   fs.readFile('./views/index.html',(err,data)=>{
   // 调用 响应回浏览器的方法把页面内容返回浏览器 
    response.end(data)
  })
})

处理静态数据
根据请求url返回不同的静态资源 request.url
统一返回静态资源
server.on('request',(request,response)=>{
  // 请求的url要以 /views 开关,才是静态请求
  if(/^\/views/.test(request.url)){
  	fs.readFile(__dirname+request.url,(err,data)=>{
      response.end(data)
    })   
  }
})
处理动态数据
server.on('request',(request,response)=>{
  // 判断url
  if(reqeust.url === '/getArticles'){
    // 转JSON
    let json = JSON.stringify([
      {id:1,title:'标题1',content:'内容1'},
      {id:2,title:'标题2',content:'内容2'},
    ])
    response.send(json)
  }
})

获取
 $.ajax({
    url:'http://127.0.0.1:8080/getArticles',
    success(res){
      // 反序列化 为数组
      let arr = JSON.parse(res)
    }
  })

模块化

CommonJS模块化

module.exports = { 导出的数据 }
或者
module.exports.= 导出的数据
或者
exports.= 导出的数据

配合动态路由

// 把动态请求的功能放在这个router.js里面
module.exports = function(req,res){
    if(req.url === '/getArticle'){
        res.end(文章数据)
    }else if(req.url==='/login'){
        res.end(登录结果)
    }
    // TODO
}


// 导入router.js里面导入的函数
const router = ruquire('./router.js')
server.listen(8080,'127.0.0.1')
server.on('request',(req,res)=>{
    if(/^\/views/.test(req.url)){
    }else{
      	// 调用函数处理动态数据
        router(req,res)
    }
})

包管理工具

Express
处理get请求
处理post请求
基本使用
初始化
npm init -y
安装 
 npm i express 
 
 // 1、引入express模块并创建express对象
const express = require('express');
const app = express();

// 3、监听端口
app.listen(3000, () => {
    //这里的代码服务器刚启动的时候执行1次
    //console.log('Example app listening on port 3000!')
});
//请求静态资源
//app.use('/views',express.static('views')) 

----//POST
// post请求带回的数据有多种格式,所以我们要先决定好能解决哪种格式
//app.use(express.urlencoded({extened:true})) // 这是解析 key=value&key=value格式的
------

// 2、书写处理请求的方法,来响应请求
app.get('/', (req, res) => {
    // 第一个参数req是请求头对象,里面包含请求头信息
    // 第二个参数res用来做响应
   //console.log(req); //get
   //console.log(req.body) //post
 res.send({
    code:200,msg:'ok',
    data : [ {id:1,title:'标题1'},{id:2,title:'标题2'},{id:3,title:'标题3'}, ]
  })
});
node app.js 启动应用
代理解决跨域
jsonp解决跨域
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值