node.js创建项目
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.')
})