Node.js记录

Posted wangyy39

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js记录相关的知识,希望对你有一定的参考价值。

在智能社上听了一些关于node.js的视频,总结一小部分内容,都是总结老师讲的知识点,并且也是在不断学习的过程,所以会不断更新。也是为了怕自己遗忘一些知识点,同时现今没有什么项目可以让我去真正实践,这样多次浏览也为以后打基础。接下来就进入正题。

 

用户注册、登陆

  关于这部分,因为以前还没接触nodejs的时候,有同学在快交项目的时候问我可不可以马上写一个检测用户名是否已经注册过的代码,我也很懵逼,觉得好难,结果看到了nodejs这一部分,我才觉得emmm好吧是我年少无知了,其实没有那么的难。

  首先要解析数据,然后是区分到底是接口还是文件,毕竟如果是文件就不存在登陆注册这一说了,直接读取就可以了。这里顺带提一下,读取文件是用到了fs。

  

var server=http.createServer(function (req, res){
  //解析数据
  var str=‘‘;
  req.on(‘data‘, function (data){
    str+=data;
  });
  req.on(‘end‘, function (){
    var obj=urlLib.parse(req.url, true);

    const url=obj.pathname;
    const GET=obj.query;
    const POST=querystring.parse(str);

    //区分——接口、文件
    if(url==‘/user‘){   //接口
      switch(GET.act){
        case ‘reg‘:
          //1.检查用户名是否已经有了
          if(users[GET.user]){
            res.write(‘{"ok": false, "msg": "此用户已存在"}‘);
          }else{
            //2.插入users
            users[GET.user]=GET.pass;
            res.write(‘{"ok": true, "msg": "注册成功"}‘);
          }
          break;
        case ‘login‘:
          //1.检查用户是否存在
          if(users[GET.user]==null){
            res.write(‘{"ok": false, "msg": "此用户不存在"}‘);
          //2.检查用户密码
          }else if(users[GET.user]!=GET.pass){
            res.write(‘{"ok": false, "msg": "用户名或密码有误"}‘);
          }else{
            res.write(‘{"ok": true, "msg": "登录成功"}‘);
          }
          break;
        default:
          res.write(‘{"ok": false, "msg": "未知的act"}‘);
      }
      res.end();
    }else{              //文件
      //读取文件
      var file_name=‘./www‘+url;
      fs.readFile(file_name, function (err, data){
        if(err){
          res.write(‘404‘);
        }else{
          res.write(data);
        }
        res.end();
      });
    }
  });
});

server.listen(8080);

 

  这是一整个的过程,解释起来就几句话,也没什么可说的,就直接上代码了。

 

模块

  这里有很多东西都可以去 npm 的官方网站里去找的。同时也可以发布自己的模块。  

  require——引入其他模块
  exports——输出
  module——批量输出

  这些只是一个例子,其他的都可以在上面看到。

  node_modules这个文件夹是用于放模块的

 

  express框架

  express里,除了write呀,end呀,还有一个就是send,就是增强了功能,没有改变原生的功能,所以也是非侵入式的。

  对于数据传输,GET无需要中间件,直接req.query 就可以了,但是POST不行,必须要一个中间件,就是body-parser,需要先下载这个才可以。

 

链式操作:

server.use(‘/‘,function(req,res,next){

  console.log(‘a‘);

});

server.use(‘/‘,function(req,res,next){

  console.log(‘b‘);

})

 

cookie和session

  首先我认为两者最大的区别是一个不安全,一个较安全。cookie是保存在浏览器中的,而且很有限,所以很不安全。session是保存在服务端的,所以较安全。

  但是为什么现在还保存着cookie呢?其实是因为session是基于cookie实现的。



以上是关于Node.js记录的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Promise 和 node.js 正确检查和记录 http 状态代码?

vscode代码片段建议bug

node.js-MySQL COUNT 记录数

从Node.js Stream写入多个文件

如何使用 Node.js 将多条记录插入 Oracle DB

Node.js记录