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.')
})
posted @ 2021-03-19 18:01  嘿!那个姑娘  阅读(99)  评论(0编辑  收藏  举报