JAVA语言之node使用自定义模块跟express
小标 2019-03-04 来源 : 阅读 723 评论 0

摘要:本文主要向大家介绍了JAVA语言之node使用自定义模块跟express,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言之node使用自定义模块跟express,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

JAVA语言之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);
});


中间模块封装

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程