node基础与express框架

搭建Express框架运行环境

    cnpm i -g express-generator
    express server 生成server文件夹  //或者 cd server express -e .  => -e 代表使用ejs模板引擎 . 代表当前目录

  •     在app.js中定义对应路由:

      var goods = require('./routes/goods');
      app.use('/goods', goods);

  •     创建models 里面各种定义模型Schema

    models goods.js
   

var mongoose = require('mongoose');
    var Schema = mongoose.Schema;
    var productSchema = new Schema({
        "name":String,
        "type":String,
        "foods":[
            {
                  "name":String,
                  "price":String,
                  "oldPrice":String,
                  "description":String,
                  "sellCount":String,
                  "rating":String,
                  "info":String,
                  "ratings":[],
                  "icon":String,
                  "image":String
            }
        ]
    })
    module.exports = mongoose.model('good',productSchema,'goods');
  •     定义路由

    routes goods.js
   

var express = require('express');
    var router = express.Router();
    var mongoose = require('mongoose');
    var Goods = require('../models/goods');
    mongoose.connect('mongodb://127.0.0.1:27017/eleApp');
    mongoose.connection.on("connected",function(){
        console.log("MongoDB connected success.")
    });
    mongoose.connection.on("error",function(){
        console.log("MongoDB connected fail.")
    });
    mongoose.connection.on("disconnected",function(){
        console.log("MongoDB connected disconnected.")
    });
    router.get('/list',function(req,res,next){
        Goods.find({},function(err,doc){
            if(err){
                res.json({
                    status:"1",
                    msg:err.message
                });
            }else{
                res.json({
                    status:'0',
                    msg:'',
                    result:{
                        count:doc.length,
                        list:doc
                    }
                });
            }
        })
    })
    module.exports = router;

参数获取

get方法


    app.get('/movie/:id',function(req,res){
        var id = req.params.id;
    })
    app.get('/movie/111?userid=2323',function(req,res){
        var userid = req.query.userid;
    })

    req.param('userid') => 所有参数都匹配 ,但是有优先级。


post方法


    app.post('/admin/movie/new',function(req,res){
      var id = req.body.movie._id;  
    })

    使用post

    axios.post('/',{
        userName:'userName'
    }).then((response)=>{
        
    })

定义模板引擎


    app.set('views', path.join(__dirname, 'views'));
    app.engine('.html',ejs.__express);
    app.set('view engine', 'html');

    app.use(express.static(path.join(__dirname, 'views')));
 

node跨域请求


app.all('*',function (req, res, next) { 
    res.header('Access-Control-Allow-Origin', '*');
    res.header('Access-Control-Allow-Headers', 'Content-Type, Content-Length, Authorization, Accept, X-Requested-With , yourHeaderFeild');
    res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
    if (req.method == 'OPTIONS') { 
        res.send(200); /让options请求快速返回/
    } else 
    { 
        next(); 
    } 
});
 

猜你喜欢

转载自blog.csdn.net/jeft_hai/article/details/82823169