自定義模塊
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);
});
中間模塊封裝