实现学生信息添加功能
在模板的表单中指定请求地址与请求方式
为每一个表单项添加name属性
添加实现学生信息功能路由
接收客户端传递过来的学生信息
将学生信息添加到数据库中
将页面重定向到学生信息列表页面
本项目开发按着项目开发的流程:views文件夹下是模板 model文件夹下是数据库的操作文件 分为接口文件和创造文件 route文件夹是路由的获取代码 public 放公共css文件 app.js为主文件
app.js
// 引入http模块 const http = require('http'); // 引入模板引擎 const template = require('art-template'); // 引入path模块 const path = require('path'); // 引入静态资源访问模块 const serveStatic = require('serve-static');//返回一个方法 // 引入处理日期的第三方模块 const dateformat = require('dateformat'); const router = require('./route/index'); // 实现静态资源访问服务 const serve = serveStatic(path.join(__dirname, 'public'))//返回一个方法 // 配置模板的根目录 template.defaults.root = path.join(__dirname, 'views'); // 处理日期格式的方法 template.defaults.imports.dateformat = dateformat; // 数据库连接 require('./model/connect'); // 创建网站服务器 const app = http.createServer(); // 当客户端访问服务器端的时候 app.on('request', (req, res) => { // 启用路由功能 router(req, res, () => {}) // 启用静态资源访问服务功能 serve(req, res, () => {}) }); // 端口监听 app.listen(3000); console.log('服务器启动成功');
数据库moudel文件夹下代码
user.js
const mongoose = require('mongoose');
// 创建学生集合规则
const studentsSchema = new mongoose.Schema({
name: {
type: String,
required: 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;
connect.js
const mongoose = require('mongoose');
// 连接数据库
mongoose.connect('mongodb://localhost/wrj', { useNewUrlParser: true })
.then(() => console.log('数据库连接成功'))
.catch(() => console.log('数据库连接失败'))
路由代码
// 引入router模块 const getRouter = require('router'); // 获取路由对象 const router = getRouter(); // 学生信息集合 const Student = require('../model/user'); // 引入模板引擎 const template = require('art-template'); // 引入querystring模块 const querystring = require('querystring'); // 呈递学生档案信息页面 router.get('/add', (req, res) => { let html = template('index.art', {}); res.end(html); }) // 呈递学生档案信息列表页面 router.get('/list', async (req, res) =>{ // 查询学生信息 let students = await Student.find(); console.log(students); let html = template('list.art', { students: students }) 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;
浙公网安备 33010602011771号