node使用自定義模塊跟express

自定義模塊

require——引入其他模塊
exports——輸出
module——批量輸出
自定義模塊向外輸出

/*
exports.a=12;
exports.b=5;
exports.c=99;
*/

//var a=12;
exports.a=12;

獲取自定義模塊輸出內容

const mod=require('mod');

console.log(mod.a);

批量向外輸出
module.exports={a: 12, b: 5, c: 99};

npm

npm:NodeJS Package Manager(NodeJS包管理器)
1.統一下載途徑
2.自動下載依賴

node_modules——放模塊
./
不加./        必須放在node_modules裏面
require
1.如果有"./"
    從當前目錄找

2.如果沒有"./"
    先從系統模塊
    再從node_modules找

    自定義模塊統一,都放到node_modules裏面

npm發佈自己的模塊

https://www.npmjs.com/

登陸自己的npm賬號
npm login

Username: zhf198821
Password:
Email: (this IS public) [email protected]
Logged in as zhf198821 on https://registry.npmjs.org/.

npm whoami 查看自己的信息

npm init 初始化
Press ^C at any time to quit.
package name: (自定義模塊) mytest
version: (1.0.0)
description: 這是我的測試包
entry point: (index.js)
test command:
git repository:
keywords:

生成信息
{
  "name": "mytest",
  "version": "1.0.0",
  "description": "這是我的測試包",
  "main": "index.js",
  "dependencies": {},
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

npm publish

如果無法發佈說明該包名字被其他人佔有

跟新後發佈據需要重新發布
npm update 包名

 

express模塊

安裝
  cnpm install express

express模塊響應請求

const express=require('express');

var server=express();

server.use('/', function (req.res){
  console.log('use了');

});

server.listen(8080);

express中res req

非侵入式  增強
req

原生:
res.write();
res.end();

express:
*res.send();
res.write();
res.end();

send可以發送 json對象

res.send({a:11,b:12})

express中處理get與post

//server.get('/', function (){
//console.log('有GET');
//});
//server.post('/', function (){
//console.log('有POST');
//});

express中使用express-static中間件

server.use(expressStatic('./www'));

express綜合練習

const express=require('express');
const expressStatic=require('express-static');

var server=express();
server.listen(8080);

//用戶數據
var users={
  'blue': '123456',
  'zhangsan': '654321',
  'lisi': '987987'
};

server.get('/login', function (req, res){
  var user=req.query['user'];
  var pass=req.query['pass'];

  if(users[user]==null){
    res.send({ok: false, msg: '此用戶不存在'});
  }else{
    if(users[user]!=pass){
      res.send({ok: false, msg: '密碼錯了'});
    }else{
      res.send({ok: true, msg: '成功'});
    }
  }
});

server.use(expressStatic('./www'));

express 獲取get參數

const express=require('express');

var server=express();
server.listen(8080);

//GET、POST
server.use('/', function (req, res){
  console.log(req.query); //GET
});

express獲取post參數

const express=require('express');
const bodyParser=require('body-parser');

var server=express();
server.listen(8080);

server.use(bodyParser.urlencoded({
  extended: false,                 //擴展模式
  limit:    2*1024*1024           //限制-2M 默認100k
}));

server.use('/', function (req, res){
  console.log(req.body); //POST
});

//req.query   GET
//req.body    POST

鏈式操作

const express=require('express');
const bodyParser=require('body-parser');

var server=express();
server.listen(8080);

server.use('/', function (req, res, next){
  console.log('a');

  next();
});

server.use('/', function (req, res, next){
  console.log('b');
});

自己編寫中間件模塊

const express=require('express');
const querystring=require('querystring');
const bodyParser=require('body-parser');

var server=express();
server.listen(8080);

/*
server.use(function (req, res, next){
  var str='';
  req.on('data', function (data){
    str+=data;
  });
  req.on('end', function (){
    req.body=querystring.parse(str);

    next();
  });
});
*/

server.use(bodyParser.urlencoded({}));

server.use('/', function (req, res){
  console.log(req.body);
});

中間模塊封裝

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章