从头开始搭建express服务
2020-07-19 本文已影响0人
CodingCode
从头开始搭建express服务
- 安装nodejs
google就好了。
- 创建工程
$ cd ../projests
$ mkdir testproject
$ cd testproject
$ npm init
...
此步会在当前目录下面创一个package.json文件
{
"name": "testproject",
"version": "1.0.0",
"description": "A test project",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}
- 安装express
$ npm install express
此后在当前目录下新增:
- 文件package-lock.json,包含依赖包的版本,下载地址等信息
- 目录node_modules,包含依赖包的代码
并且修改了package.json文件,新加一个依赖
...
"dependencies": {
"express": "^4.17.1"
}
- 实现server代码
// import express (after npm install express)
const express = require('express');
// create new express app and save it as "app"
const app = express();
// server configuration
const PORT = 3000;
// create a route for the app
app.get('/', (req, res) => {
res.send('Hello World!');
});
// make the server listen to requests
app.listen(PORT, () => {
console.log(`Server running at: http://localhost:${PORT}/`);
});
- 启动服务
$ node index.js
Server running at: http://localhost:3000/
注意这里一点说明,package.json的主要目的是npm用来管理项目代码,维持代码库依赖关系而使用,并不是直接给node使用的,也就是说npm会访问package.json,而node不会。
客户端访问:
$ curl localhost:3000
Hello World
- 标准化的项目工程
上面是一个最简单的例子,只有一个index.js文件,那富有经验的工程师就会疑问,如果搭建标准的项目工程框架呢,如何标准的组织项目配置,文件,目录结构呢。
这个时候就可以用到express-generator:
先安装
$ sudo npm install express-generator -g
参数-g是全局标识,即把express-generator安装到全局目录下面,全程可用。
创建工程:
$ express testproject
warning: the default view engine will not be jade in future releases
warning: use `--view=jade' or `--help' for additional options
create : testproject/
create : testproject/public/
create : testproject/public/javascripts/
create : testproject/public/images/
create : testproject/public/stylesheets/
create : testproject/public/stylesheets/style.css
create : testproject/routes/
create : testproject/routes/index.js
create : testproject/routes/users.js
create : testproject/views/
create : testproject/views/error.jade
create : testproject/views/index.jade
create : testproject/views/layout.jade
create : testproject/app.js
create : testproject/package.json
create : testproject/bin/
create : testproject/bin/www
change directory:
$ cd testproject
install dependencies:
$ npm install
run the app:
$ DEBUG=testproject:* npm start
按提示步骤运行npm install和npm start就启动server。