1. 程式人生 > >node基礎與express框架

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();      }  });