手记

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) 349860782@qq.com

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

});

中间模块封装

©著作权归作者所有:来自51CTO博客作者万和IT教育的原创作品,如需转载,请注明出处,否则将追究法律责任

n


0人推荐
随时随地看视频
慕课网APP