Node.js入门

238 阅读2分钟

node

服务器模块:http

// 用require 引入模块
const http = require("http");
​
// 这里的函数,是服务器被访问时需要执行的功能  res是响应,req是请求
const serverObj = http.createServer(function(req,res){
    const url = req.rul;
    // 设置编码,防止乱码
    res.writeHead(200,{"Content-Type":"text/plain;charset=utf-8"});
    if(req.url === "/"){
        res.write("转型前端了呀");
    }
    res.writeHead(200,{"Content-Type":"text/plain;charset=utf-8"});
    res.write("转型前端了呀");
    res.end();
​
});
​
// 设置端口监听  这里的函数是服务启动成功之后执行的功能
serverObj.listen(3000,function(){
    console.log("服务器启动了");
})

文件模块:fs

const fs = require("fs");
​
// 增加
fs.writeFile("./hello.txt","你好 node",function(err){
    console.log(err)
})
​
// 修改就是覆盖
// 读取
fs.readFile("./hello.txt","utf-8",function(err,data){
    console.log(err);
    console.log(data);
});
​
// 删除
fs.unlink("./hello.txt",function(err){
    console.log("删除成功!")
});
// 引入模块
const url = require("url");
const http = require("http");
const fs = require("fs");
const qs = require("querystring");
​
// 创建服务器对象
const serveObject = http.createServer((request,response)=>{
    if(request.url.indexOf("api") !== -1){
        // 访问数据
        dataFunction(request,response);
​
    }else{
        // 访问静态资源
        staticFunction(request,response);
    }
});
​
​
// 监听端口
serveObject.listen(3000,(error)=>{
    if(error){
        console.log(error);
    }else{
        console.log("服务器开启成功:访问 http://localhost:3000");
    }
    
});
​
// 访问数据资源
function dataFunction(request,response){
   
    // 如果是get请求
    if(request.method ==="GET"){
        // 通过url来解析地址
      const data =  url.parse(request.url,true).query;
      console.log(data)
      transit(request,response,data);
      
​
    }else if(request.method ==="POST"){
        let str = "";
        request.on("data",(s)=>{
            str  += s;
        });
        request.on("end",()=>{
          const data =  qs.parse(str);
          transit(request,response,data);
        });
​
       
    }
}
​
// 访问静态资源
function staticFunction(request,response){
    // 解析地址,带有参数
   let requestUrl = url.parse(request.url).pathname;
   console.log(requestUrl)
    fs.readFile(`./html${requestUrl}`,"utf-8",(error,data)=>{
        if(error){
            console.log("页面找不到了"+error);
        }else{
            response.write(data);
        }
        response.end();
​
    });
​
}
​
// 过渡函数:将get和post的数据,过渡处理,区分具体的功能路由
function transit(req, res, data){
    switch(data.type){
        case "login":
            // login(req, res, data);break;
            console.log("login");break;
        case "regist":
            // register(req, res, data);break;
            console.log("regist");break;
        case "banner":
            // getBanner(req, res, data);break;
            console.log("banner");break;
        case "getGoods":
            getGoods(req, res, data);break;
            console.log("getGoods");break;
        default:
            error(req, res);
    }
}
​
// 错误处理
function error(req,res){
    res.write("err");
    console.log("err");
    res.end();
}
​
​
function getGoods(req,res,data1){
    fs.readFile("./database/goods.json","utf-8",function(error,data){
            console.log(data);
            res.write(JSON.stringify(data));
            res.end();
    });
​
}

express

npm i express -g
​
下载脚手架
npm i express-generator -g 
​
用脚手架创建demo
express projectName 

\