wang--chao

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.\')
})

分类:

技术点:

相关文章: