nodejs开发后端的环境配置
关于nodejs的配置,我们在用nodejs搭建后台过程中,需要在控制台下载许多包和安装一些东西来配合我们的操作,如果能事先就处理好这些问题,那么接下来我们就可以专注于我的业务了。以下是我的总结。我是一名前端菜鸡,经验不足,文章可能存在很多不严谨的地方,请多多指教。
安装nodemon
npm install --global nodemon
我们一般都是使用node命令来启动服务器,每一次代码的修改都要重新启动服务器,
无法像html文件一样,在修改之后只要保存和刷新就可以,
但如果你安装了nodemon,只要你第一次使用nodemon 来启动服务器,它就会一直监视你文件的变化,
只有你修改了,就会重启你的服务器,
这样一来可以省了你宝贵的时间啦。是不是快爱上它了,hh.
下载package.json文件
下载:
npm init -y
由于很多包的安装都依赖package.json文件,如果没有该文件,后面下载包的时候可能会报错*no such file or directory, open 'C:\ \package.json。*所以推荐一开始就下载这个文件。
####安装express
安装:
npm install express -g
引包:
var express=require("express");
创建服务:
var app=express();
此时的app相当于http.creativeSever
例子:
var express=require("express");var app = express();// 这个一定要挂载路由之前app.use(router);app.get('/test2',function(req,res,next){ res.send('hello test2');});app.listen(8081, function () { console.log("启动");})
上面的例子可以取代:
var http=require("http");
//创建服务器 回调函数表示接收到请求要做的事情
var server=http.createServer(function(req,res){
//req表示请求 res表示响应
res.writeHead(200,{"Content-type":'text/html;charset=UTF8'});
res.end("开启服务器");
});
//运行服务器 监听端口8080
server.listen(8081,"127.0.0.1");
公开指定目录
在我们的配套文件中,有些文件属于私密的,有些文件允许客户访问,一般允许客户访问的文件我们一般会放在public文件夹下,其实public就是公开的意思。
语法:
app.use('/文件夹名字',express.static('./文件夹名字'))
例子一:
第一种:app.use('/public',express.static('./public'))
第二种:app.use(express.static('./public'));
假设你的publi文件夹下面有一个login.html文件
- 对于第一种:
你可以通过http://127.0.0.1:8081/public/login.html来访问你的login.html文件 - 对于第二种:
- 当你省略第一个参数/public/时,你需要通过省略/public/的方式来访问:http://127.0.0.1:8081/login.html
例子二:
app.use('/static/',express.static('./static'));
配置引擎模板art-template
安装:
npm install art-template --save
npm install --save express-art-template
引用包:
var template=require('art-template');
在express中使用模板引擎:
app.engine('.html',require('express-art-template'));
app.get('/', function (req, res) {
// res.render('404.html',);
res.render('admin/index.html',{title:'可怜深情一无是处'});
});
app.engine()第一个参数表示,当渲染以.html结尾的文件时,使用art-template模板引擎express-art-template是专门用来在express中把art-template整合到Express中的
虽然我们不需要加载require(‘art-template’),但他依赖art-template
Express为res对象提供一个方法:render
render()默认不可以使用,除非安装了art-template
res.render(‘html模板名’,{模板数据});
注意:第一个参数不能写路径,默认会去views目录中查找该文件
也就是说express有一个约定:开发人员会把所有视图文件放在views下
配置body-parser
为啥我们要配置body-parser呢?
客户端可以向服务端发起get和post请求,在发请求的时候可以带参数传到服务端,那么如果想要获取请求的参数,对于get请求,通过req.query直接获得,但对于post请求,我们就需要配置body-parser之后通过req.body获取了。
引包:
var bodyParser=require('body-parser');
配置body-paeser:
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
下载MongODB
启动数据库:
//在控制台输入命令:
mongod
关闭数据库:
//方法一:在控制台输入命令:
mongod
//方法二:直接关闭控制台
连接数据库:
//在连接状态下,在控制台输入命令:
mongo
只有启动和连接了数据库,你对数据库的操作才有效。
下载mongoose
安装了MongODB之后,我们需要借助mongoose操作mongoose数据库
安装:
npm install mongoose
引包:
mongoose = require('mongoose');
连接数据库:
//指定连接的数据库不需要存在,当你插入一条数据的时候会自动创建出来
mongoose.connect('mongodb://localhost:27017/test', { useNewUrlParser: true, useUnifiedTopology: true });
例子:
//所有的数据库操作都是异步的
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
//连接数据库
//指定连接的数据库不需要存在,当你插入一条数据的时候会自动创建出来
mongoose.connect('mongodb://localhost:27017/test', { useNewUrlParser: true, useUnifiedTopology: true });
//设计集合(表结构)
//字段名称就是表结构中的属性名称
//约束的目的是保证数据的完整性,不要有脏数据
var userSchema = new Schema({
username: {
type: String,
require: true,//必须有
},
password: {
type: String,
require: true,
},
email: {
type: String,
require: false,
}
})
var User = mongoose.model('User', userSchema);
//p83新增数据库
var jiujiu = new User({
username: "jiujiu",
password: "10086",
email: "[email protected]"
});
引用session
安装:
npm install express-session
引包:
var session=require('express-session');
配置:
//配置session一定要在app.use(router)之前
app.use(session({
secret:'itcase',//配置加密字符串itcase,它会在原有加密字符串之上,和这个字符串拼接
//目的是加密字符串,防止客服端任意伪造
resave:false,
//saveUninitialized:true//无论你是否使用session,即在本案例中,无论是否注册,我都会给你配置一把钥匙
saveUninitialized:false
}))
使用:
//当这个插件配置好之后,我们就可以通过req.session来访问和部署session成员
//添加session数据
req.session.foo='bar'
//访问session数据
req.sesson.foo