ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Express应用

2020-06-04 11:54:54  阅读:266  来源: 互联网

标签:Express req get res app express send 应用


# express

## 简介

    web开发应用

## 下载

    npm install express   

## 中间件

    中间件方法和请求处理函数

    app.get('请求路径','处理函数');

    app.post('请求路径','处理函数');

## 处理get请求参数

    req.query

## 处理post请求参数

    使用中间件  body-parser

    通过req.body

典型模板

const express = require('express');

//创建网站服务器

const app = express();

app.get('/', (req, res) => {

res.send('hello world!');

});

app.get('/news', (req, res) => {

//send():会检测响应内容的类型,自动设置状态码

res.send('whats up?!');

});

app.listen(7788);

console.log('app is running!');


Cannot set headers after they are sent to the client

res.send() //不支持重复提交!

// 入口全部响应

app.get('*', (req, res, next) => {

console.log(++count);

next();  //支持跳转

});

app.get('/req1', (req, res, next) => {

console.log(1111);

res.send('hello');

console.log(2222);

next();

res.send('world');

console.log(3333);

next();

});


//中间件:app.use()匹配

app.use((req, res, next) => {

console.log(123);

});

app.get('/req1', (req, res, next) => {

res.send(req.query.a + '—' + req.query.b);

});

app.post('/post', (req, res) => {

console.log(req.body);

res.send(req.body);

});

// 获取文件内容

fs.readFile('./2.js', 'utf8', (err, data) => {

if (err != null) {

next(err);

        } else {

res.send(data);

        }

    })

//处理错误中间件

app.use((err, req, res, next) => {

res.status(500).send(err.message);

});


express.Router()  获取路由:改变根路径地址

/home作为根目录,进行跳转

http://localhost:8899/home/index


//实现将模块对象统一管理

const express = require('express');

const app = express();

//创建路由对象

const home = express.Router();

//二级路由  /home/index

home.get('/', (req, res) => {

res.send('home');

});

home.get('/index', (req, res) => {

res.send('welcome');

});

app.use('/home', home);

app.listen(8899);

多个根目录:

const app = express();

const home = require('./route/home');

const admin = require('./route/admin');

app.use('/admin', admin);

app.use('/home', home);


//其他路由

const express = require('express');

const admin = express.Router();

admin.get('/index', (req, res, next) => {

res.send('/admin/index');

next();

});

module.exports = admin;


??访问静态资源问题

//express 访问静态资源

//app.use(express.static('public'));

app.use('/static', express.static('public'));


模板引擎应用

render && view


//配置模板引擎

app.engine('art', require('express-art-template'));

//设置模板存放的目录

app.set('views', path.join(__dirname, 'views'));

//设置默认的模板扩展名

app.set('view engine', 'art');


app.get('/index', (req, res) => {

res.render('index');

});

app.get('/news', (req, res) => {

res.render('news', {

msg: 'hello world'

    });

});

//对应views目录下存在如下文件 news.art  index.art

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>Document</title>

</head>

<body>

<ul>

<li>{{msg}}</li>

<li>{{msg}}</li>

<li>{{msg}}</li>

</ul>

<p>{{msg}}</p>

</body>

</html>

// 设置目标值

let dataObj = {

msg: 'hello world'

};

//或者

app.locals.msg = 'hello';


文件所在当前路径+文件名

//let pathName = path.join(__dirname, './2.js');

标签:Express,req,get,res,app,express,send,应用
来源: https://www.cnblogs.com/macro-renzhansheng/p/13042565.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有