网站首页 > 开源技术 正文
请确保已安装Node.js运行环境,Node.js安装教程《Linux使用源码安装Node.js》。
使用npm安装express快速生成器
npm install -g express-generator
检测express是否安装成功
express --version
输出:当前express.js的版本号
使用express快速生成器创建一个项目
express express-demo
期间会提示请追加--view参数,--view为视图解析引擎,也就是将某种模板解析为Html,默认为jade。这不会有太大影响,我个人用的是ejs。
进入项目目录,并查看项目结构
Linux || MacOS
cd express-demo && ls
Windows
cd express-demo && dir
项目目录下分别有 bin/、public/、routes/、views/ 四个文件夹以及app.js、package.json两个文件。
初始化项目
npm install
启动Server
npm start 或 node bin/www
访问Server
http://localhost:3000
修改Server端口
编辑bin/www文件
找到var port = normalizePort(process.env.PORT || '3000')这一行并修改'3000'为您的目标端口号。
维护静态资源
public/文件夹中包含images/、javascripts/、stylesheets/三个文件夹;
images/一般用来存放图片类静态资源;
javascripts/一般用来存放js静态资源;
stylesheets/一般用来存放css静态资源;
如果以上三个文件夹不满足您的要求,您可额外添加其它文件夹;
访问静态资源
ip:port/{public文件夹下的相对路径}
例子:localhost:3000/images/logo.jpg
维护视图模板
views/文件夹用于存放视图模板,根据express设置的视图解析引擎,用的视图模板也不一样。项目初始化时,会自动生成2~3个默认模板用于参考,这个不作详述,自行探究。
Server路由
routes/文件夹存放的是运维中用到的路由。项目初始化时,会自动生成index.js、users.js两个路由用于参考。
添加路由
在routes/文件夹中创建一个文件demo.js,并打开编辑:
var router = require('express').Router();
router.get('/', function(req, res, next) {
res.json({
message: 'changeden.net'
});
});
module.exports = router;
保存并退出
打开并编辑项目根目录中的app.js文件:
在app.use('/', index)行的下方新增一行,内容为app.use('/demo', require('./routes/demo'));
保存并退出
重启Server
添加路由文件
在app.js中添加路由
浏览该路由
express.js的进阶
添加常用请求类型的路由:
GET:router.get('/', function(req, res, next) {});
POST:router.post('/', function(req, res, next) {});
PUT:router.put('/', function(req, res, next) {});
DELETE:router.delete('/', function(req, res, next) {});
添加restful路由(注:一个路由只能有一个动态字段):
router.get('/:id', function(req, res, next) {
res.json({
id: req.params.id
})
})
获取restful中的字段:
req.params[对应字段]
获取请求body:
req.body[对应字段]
获取Url中的参数:
req.query[对应字段]
获取Header:
req.header(对应字段);
常用的响应方式:
以Json形式响应:
res.json(); 或 res.jsonp();
以Text形式相应:
res.send();
以视图模板生成页面:
res.render(模板名字, {传入的模板所需动态参数});
重定向:
res.redirect(某个Url);
发送一个文件:
res.sendFile();
解决跨域问题
打开并编辑项目根目录中的app.js文件:
在app.use('/', index)行的上方新增以下内容,
app.all('*', function (req, res, next) {
res.header('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS');
res.header('Access-Control-Allow-Headers', 'X-Requested-With');
res.header('Access-Control-Allow-Headers', 'Content-Type');
res.header('Access-Control-Allow-Origin', '*');
next();
});
保存并退出
重启Server
使用pm2启动Server
使用集群模式启动,将别名设为express-demo,并开启热更新(如有文件被修改,则自动重启项目)
pm2 start bin/www -i 0 --name "express-demo" --watch
如需了解更多,可留言或私聊。
注意
要了解更多互联网技术,请关注我的头条号!
兔子人网:
https://www.changeden.net
我的Github:
https://github.com/ChangedenCZD
动态数据库使用教程:
https://bunnydb.changeden.net
联系我:
changeden520@gmail.com
猜你喜欢
- 2024-10-22 调用 Express API时出现奇怪的CORS错误怎么办?
- 2024-10-22 详解如何从零开始搭建Express+Vue开发环境
- 2024-10-22 从零开始学习nodejs+express--交互环境
- 2024-10-22 express开发(一)简介与搭建(express创建项目)
- 2024-10-22 express中间件原理connect(express和koa中间件原理的区别)
- 2024-10-22 蓝易云 - centos系统直接部署express教程。
- 2024-10-22 Node + Express + Mysql: Todo List项目让你成全栈
- 2024-10-22 我为 Express 开了外挂(cad中的express怎么显示为中文)
- 2024-10-22 七爪源码:让我们 Dockerize 一个 Node.js Express 应用程序
- 2024-10-22 Node实战篇:Express--jade模板引擎(七)
你 发表评论:
欢迎- 03-19基于layui+springcloud的企业级微服务框架
- 03-19开箱即用的前端开发模板,扩展Layui原生UI样式,集成第三方组件
- 03-19SpringMVC +Spring +Mybatis + Layui通用后台管理系统OneManageV2.1
- 03-19SpringBoot+LayUI后台管理系统开发脚手架
- 03-19layui下拉菜单form.render局部刷新方法亲测有效
- 03-19Layui 遇到的坑(记录贴)(layui chm)
- 03-19基于ASP.NET MVC + Layui的通用后台开发框架
- 03-19LayUi自定义模块的定义与使用(layui自定义表格)
- 最近发表
-
- 基于layui+springcloud的企业级微服务框架
- 开箱即用的前端开发模板,扩展Layui原生UI样式,集成第三方组件
- SpringMVC +Spring +Mybatis + Layui通用后台管理系统OneManageV2.1
- SpringBoot+LayUI后台管理系统开发脚手架
- layui下拉菜单form.render局部刷新方法亲测有效
- Layui 遇到的坑(记录贴)(layui chm)
- 基于ASP.NET MVC + Layui的通用后台开发框架
- LayUi自定义模块的定义与使用(layui自定义表格)
- Layui 2.9.11正式发布(layui2.6)
- Layui 2.9.13正式发布(layui2.6)
- 标签列表
-
- jdk (81)
- putty (66)
- rufus (78)
- 内网穿透 (89)
- okhttp (70)
- powertoys (74)
- windowsterminal (81)
- netcat (65)
- ghostscript (65)
- veracrypt (65)
- asp.netcore (70)
- wrk (67)
- aspose.words (80)
- itk (80)
- ajaxfileupload.js (66)
- sqlhelper (67)
- express.js (67)
- phpmailer (67)
- xjar (70)
- redisclient (78)
- wakeonlan (66)
- tinygo (85)
- startbbs (72)
- webftp (82)
- vsvim (79)
本文暂时没有评论,来添加一个吧(●'◡'●)