zoukankan      html  css  js  c++  java
  • node.js,express入门看详细篇

    先最简单的代码

    安装 npm install express

    app.js 代码内容

    const express = require('express')  
    const app = express()   
    //单项流动 
    const mid1 = () => (req, res, next) => {
        res.body = '请求1<br/>'
        next()
    }
    const mid2 = () => (req, res, next) => {
        res.body += '请求2<br/>'
        next()
    }
    
    app.use(mid1())
    app.use(mid2())
    
    app.get('/', (req,res,next) => {
        res.send(res.body +'业务处理中')
    })
    
    app.listen(2334)

    打开 localhost:2334端口可以看到 

    在上一个丰富点的代码,包含 swig模版引擎,静态资源加载,mongoose使用

    var express = require('express');           //引入express
    var swig = require('swig');                 //引入swig模版引擎 同类的还有ejs  bug
    var mongoose = require('mongoose');         // 引入数据库 mongoose  需预先安装数据库
    //加载 bodeyparser
    var bodyParser = require('body-parser');   // 引入 body-parser 中间键
    var Cookies = require('cookies');          // 引入cookies
    
    var app =express();                        // 实例化 express  
    
    var User = require('./models/User');  
    
    
    //设置静态文件托管
    app.use('/public',express.static(__dirname + '/public'));    // app.use 加载中间键
    
    //加载模板模块
    app.engine('html',swig.renderFile)    
    //设置模板目录第一个参数固定
    app.set('views','./views');
    // 注册所有使用模板引擎 第一个参数必须是view engine    
    app.set('view engine','html');   
    
    swig.setDefaults({cache: false});     // 默认缓存静态页面 false方便调试
    
    app.use(bodyParser.urlencoded({extended: true}));  
    
    app.use(function(req,res,next){
        req.cookies = new Cookies(req,res);
        //解析登录用户的cookie信息
        req.userInfo ={};
        if(req.cookies.get('userInfo')){
               try{
                   req.userInfo = JSON.parse(req.cookies.get('userInfo'));
                   //获取当前登录用户类型 操作数据方法
                   User.findById(req.userInfo._id).then(function(userInfo){
                        req.userInfo.isAdmin = Boolean(userInfo.isAdmin);
                        next();  //next()  指引前往下一步
                   })
               }catch(e){
                      next();
               }
               
    
    
        }else{
             next();
        }
        
    });
    //划分路由到不同的文件夹
    app.use('/admin',require('./routers/admin'));   
    app.use('/api',require('./routers/api'));
    app.use('/',require('./routers/main'));
    // MONGOOSE 链接数据库
    mongoose.connect('mongodb://localhost:27017/test',function(err){
         if(err){
                console.log("数据库链接失败");
         }else{
              console.log("数据库链接成功");
              app.listen(8081);   
         }
    });

    我在上面代码中做了详细的注写,还会详细完善

    github地址:https://github.com/xiaoyanbin/bolg

    一个完整的node.js +mongoose + express 实现的代码 

  • 相关阅读:
    关于WPF 中 “System.Windows.Markup.XamlParseException”类型的未经处理的异常在 PresentationFramework.dll 中发生 异常的处理。
    RelativePanel 属性说明
    c# winform中遍历控件
    wpf中遍历界面控件的方法
    wpf 处理倒计时问题
    wpf 处理获取鼠标点击方法
    界面控件委托方式 wpf
    如何在WPF 应用中获取窗体或控件的句柄
    关系型数据库版本控制之(Flask SQLalchemy Alembic )
    项目管理方法论之六西格玛管理
  • 原文地址:https://www.cnblogs.com/kbnet/p/9025422.html
Copyright © 2011-2022 走看看