node开始之路
全局下载nodemon进行热更新
npm install --global nodemon
创建node项目
mkdir +项目名称
到项目路径中
cd +项目名称
初始化
npm init -y
下载express包
npm install -S express
创建app.js文件
并在中写入
// 0. 安装
// 1. 引包
var express = require(\'express\')
// 2. 创建你服务器应用程序
// 也就是原来的 http.createServer
var app = express()
app.get(\'/about\', function (req, res) {
// 在 Express 中可以直接 req.query 来获取查询字符串参数
console.log(req.query)
res.send(\'你好,我是 Express!\')
})
// 相当于 server.listen
app.listen(3000, function () {
console.log(\'app is running at port 3000.\')
})
通过node app.js运行代码
或者通过nodemon app.js运行热更新代码
下载模块引擎(可以使用 response.render(\'new.html\')渲染html页面)
npm install --save art-template
npm install --save express-art-template
在app.js中 加入代码
app.engine(\'art\', require(\'express-art-template\'));
node项目增删改的完成
var express = require(\'express\')
var app = express()
app.use(express.json())
var bodyParser = require(\'body-parser\')
// 配置模板引擎和 body-parser 一定要在 app.use(router) 挂载路由之前
// parse application/x-www-form-urlencoded
app.use(bodyParser.urlencoded({ extended: false }))
// parse application/json
app.use(bodyParser.json())
// 配置模板引擎
app.engine(\'html\', require(\'express-art-template\'));
//引包
const mongoose = require(\'mongoose\');
//创建数据库连接
mongoose.connect(\'mongodb://localhost/students\', {useNewUrlParser: true, useUnifiedTopology: true});
//创建和实例化数据库表
var studentSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
age: {
type: Number,
required: true
},
gender: {
type: String,
required: true
},
hobbies: {
type: String,
required: true
}
})
//导出数据库对象
const Student = mongoose.model(\'Student\',studentSchema)
//显示首页,学生列表
app.get(\'/index\', function (require,response) {
//Student.find等这些都是mongoose的API
Student.find(function(err,data) {
if(err) {
return response.status(500).send(\'Server error.\')
}
response.render(\'index.html\',{
students:data
})
})
})
//渲染学生添加页面
app.get(\'/new\', function (require,response) {
response.render(\'new.html\')
// console.log("收到表单的提交!!!")
})
//添加页面提交
app.post(\'/new\', function (req,res) {
// console.log(req.body)
Student.create(req.body)
//重定向跳转路由
res.redirect(\'/index\')
})
//删除学生
app.get(\'/delete\', function (req,res) {
var id = req.query.id
//console.log(id)
Student.findByIdAndDelete(id, function(err) {
if(err) {
return res.status(500).send(\'Server error.\')
}
res.redirect(\'/index\')
})
})
//修改学生
app.get(\'/edit\', function (req,res) {
var id = req.query.id
Student.findById(id, function(err,data) {
if(err) {
return response.status(500).send(\'Server error.\')
}
// console.log(data)
res.render(\'edit.html\', {
student: data
})
})
})
//修改提交信息
app.post(\'/edit\', function(req,res) {
var student = req.body
Student.findByIdAndUpdate(student.id,student, function(err) {
if(err) {
return res.status(500).send(\'Server error.\')
}
res.redirect(\'/index\')
})
})
//启动端口
app.listen(3000, function () {
console.log(\'http://localhost:3000/index.\')
})