
app01
// 引入http模塊
const http = require('http');
//連接數據庫
require('./model/connects');
// 創建網站服務器
const app = http.createServer();
//引入模板引擎
const template = require('art-template');
// 引入path模塊
const path = require('path');
// 引入處理日期的第三方模塊
const dateformat = require('dateformat')
// 引入靜態資源訪問模塊
const serveStatic = require('serve-static');
// 引入querystring模塊
const querystring = require('querystring');
const router = require('./router/index')
//實現靜態資源訪問服務
const serve = serveStatic(path.join(__dirname, 'public'))
// 配置模板的根目錄
template.defaults.root = path.join(__dirname, 'views')
//處理日期格式的方法
template.defaults.imports.dateformat = dateformat
//當客戶端訪問服務器端的時候
app.on('request', (req, res) => {
// 啟用路由功能
router(req, res, () => {})
// 啟用靜態資源訪問服務功能
serve(req, res, () => {})
})
app.listen(3000);
console.log('服務器啟動成功')
index.js
//引入router模塊
const getRouter = require('router');
//引入模板引擎
const template = require('art-template');
// 引入querystring模塊
const querystring = require('querystring');
//創建集合規則
const Student = require('../model/User')
// 獲取路由對象
const router = getRouter();
//呈遞學生檔案信息頁面
router.get('/add', (req, res) => {
let html = template('index.art', {});
res.end(html)
})
router.get('/list', async(req, res) => {
//查詢學生信息
let student = await Student.find();
console.log(student)
let html = template('indexdetail.art', {
student: student
});
res.end(html)
})
//實現學生信息添加功能
router.post('/add', (req, res) => {
//接受post請求參數
let formData = '';
req.on('data', param => {
formData += param;
});
req.on('end', async() => {
await Student.create(querystring.parse(formData))
res.writeHead(301, {
Location: '/list'
});
res.end()
})
})
module.exports = router
connects.js
const mongoose = require('mongoose')
// 連接數據庫
mongoose.connect('mongodb://localhost/playground', { useNewUrlParser: true })
.then(() => console.log('數據庫連接成功'))
.catch(() => console.log('數據庫連失敗'))
Users.js
const mongoose = require('mongoose')
// 創建學生集合規則
const studentsSchema = new mongoose.Schema({
name: {
type: String,
require: true,
minlength: 2,
maxlength: 10
},
age: {
type: Number,
min: 10,
max: 25
},
sex: {
type: String
},
email: String,
hobbies: [String],
collage: String,
enterDate: {
type: Date,
default: Date.now
}
})
// 創建集合規則
const Student = mongoose.model('Student', studentsSchema)
module.exports = Student