nodejs+express的搭建
-
安装nodejs
在nodejs官网http://nodejs.cn/download/下载对应的nodejs安装
安装路径根据自己需要,安装nodejs默认会安装npm,npm的作用就是对Node.js依赖的包进行管理,安装完成后cmd查看安装是否成功
-
环境配置
这里的环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在执行类似:npm install xxxxx -g (-g代表全局安装;-dev代表私有安装;--save工程引入)的安装语句时,会将安装的模块安装到【C:\Users\用户名\AppData\Roaming\npm】路径中,占C盘空间 。
在nodejs的安装路径下新建两个文件夹
创建完两个空文件夹之后,打开cmd命令窗口,输入
npm config set prefix "D:\NodeJS\node_global"
npm config set cache "D:\NodeJS\node_cache"
然后添加环境变量“我的电脑”-右键-“属性”-“高级系统设置”-“高级”-“环境变量”
用户环境变量中的C:\Users\Admin\AppData\Roaming\npm改成
cmd执行npm install express-generator -g全局安装该express-generator
npm install express-generator -g
新建一个工程文件夹如:D:\WorkProject\GameServer
在文件夹内新建一个js文件main.js作为项目的入口脚本。
cmd cd到该文件夹,执行npm init补充相应配置之后会发现文件夹内生成一个package.json配置文件夹
安装需要的依赖部分,删除依赖可以使用npm uninstall xxxx --save-g或者npm uninstall xxxx --save-dev
npm install @types/node --save-dev
npm install cookie-parser --save-g
// ejs界面
npm install ejs --save-g
// 框架部分
npm install express --save-g
// 日志
npm install morgan --save-g
执行完成后查看package.json并且项目中多了文件夹node_modules
{
"name": "server",
"version": "1.0.0",
"description": "",
"main": "main.js",
"scripts": {
"start": "node main"
},
"dependencies": {
"cookie-parser": "^1.4.5",
"ejs": "^3.1.3",
"express": "~4.17.1",
"morgan": "^1.10.0"
},
"author": "admin",
"license": "ISC",
"devDependencies": {
"@types/node": "^14.0.14"
}
}
如上:mian: main.js是指定的入口文件,script:node main 是指定启动命令。启动项目入口是通过cmd npm run start 执行node main.js。
可以写一个bat文件启动
d:
cd D:\WorkProject\GameServer
npm run start
在项目目录中新建action log static views文件夹分别存放路由文件,日子文件,静态文件,html文件
现在可以编写main.js并且配置好对应的文件路径
var express = require('express')
var path = require('path')
var cookieParser = require('cookie-parser')
var morgan = require('morgan')
var ejs = require('ejs')
var fs = require('fs')
var homePage = require('./action/home')
var main = express();
main.set('port', process.env.PORT || 3000)
main.set('views', __dirname + '/views')
main.engine('.html', ejs.__express)
main.set('view engine', 'html')
// 日志
morgan.token('token', function(req, res){
return req.query.from || '--';
})
morgan.format('log', '===> :method :url :status :token')
var logStream = fs.createWriteStream(path.join(__dirname + '/log', 'console.log'))
main.use(morgan('log', {stream:logStream}));
main.use(express.json());
main.use(express.urlencoded({ extended: false }));
main.use(cookieParser());
main.use(express.static(path.join(__dirname, 'static')));
// 匹配路由
main.use('/', homePage);
// 404页面
main.use(function(req, res, next) {
let curTime = new Date();
res.type('text/plain');
res.status(404);
res.send('404 - 访问页面不存在\n' + curTime);
});
// 500页面
main.use(function(err, req, res, next){
let curTime = new Date();
let errInfo = err.stack;
res.type('text/plain');
res.status(500);
res.send('500 - 服务器发生错误\n' + 'errInfo:' + errInfo + '\n' + curTime)
})
main.listen(main.get('port'), function(){
console.log('服务正在运行在 http://localhost:' + main.get('port') + '; 按 Ctrl+C 关闭服务')
})
module.exports = main;
demo文件地址链接:https://pan.baidu.com/s/1Eb00CvbfO218Js-amXqWuA
提取码:6rpj
上一篇: 卷积神经网络