【node基础三】nodejs的产生-- router.js

再度Miren
2022-10-09 / 0 评论 / 30 阅读 / 正在检测是否收录...
// 导入系统的路径拼接模块
const path = require('path');
//处理参数格式转换
const querystring = require('querystring')
    //导入处理时间模块
var datetime = require('silly-datetime');
//静态资源访问模块 serve-static
var serveStatic = require('serve-static')
    // 设置静态资源目录
const serve = serveStatic(path.join(__dirname, 'public'))
    //解析地址模块
const url = require('url');
//导入路由模块 router
const getRouter = require('router')
const router = getRouter()
    //引入数据库相关操作
const User = require('./sql.js')
    //导入模板引擎
const template = require('art-template')
router.get('/list', async(req, res) => { //呈现列表页面
    let students = await User.find(); //查詢数据库所有信息
    const html = template('list', {
        students: students
    })
    res.end(html)
})
router.get('/add', (req, res) => { //添加页面
    const html = template('add', {})
    res.end(html)
})
router.get('/modify', async(req, res) => { //修改页面
    let { pathname, query } = url.parse(req.url, true) //获取请求地址
    let students = await User.find(); //查詢数据库所有信息
    const html = template('modify', {
        user: await User.findOne({ _id: query.id }),
        hobbies: ['足球', '橄榄球', '篮球', '游泳', '西瓜', '唱歌'],
        collage: ['前端与应用开发', 'AI算法工程技术', 'PHP高级工程']
    })
    res.end(html)
})
router.get('/remove', async(req, res) => { //删除数据
    let { pathname, query } = url.parse(req.url, true) //获取请求地址
    console.log(query.id)
        // let user = await User.findOne({ _id: query.id }).then(result => console.log(result)).catch(err => { console.log('查询失败' + err) })
        // console.log(user)
        //通过ID查询数据库中的数据
        // let user = await User.findOne({ _id: query.id });
        // console.log(user)
        // 删除数据
    await User.findOneAndDelete({ _id: query.id }).then(result => console.log(result + '删除成功!'))
        //     //客户端给出响应  //使用重定向301
    res.writeHead(301, {
        Location: '/list' //地址
    })
    res.end()
        // 删除功能结束
})
router.post('/add', (req, res) => { //处理上传数据,上传到数据库
        //接受用户提交信息
        let formData = ''
        req.on('data', param => {
            formData += param;
            console.log('正在传输数据...')
        })
        req.on('end', async() => { //接受完毕之后触发
                console.log('传输数据完成...')
                    // querystring.parse(formData) //处理传递参数方法
                let user = querystring.parse(formData);
                //将用户提交的信息添加的数据库中
                await User.create(user);
                //客户端给出响应  //使用重定向301
                res.writeHead(301, {
                    Location: '/list' //地址
                })
                res.end()
            })
            ///add结束
    })
    //处理修改请求
router.post('/modify', (req, res) => { //处理上传数据,上传到数据库
    let { pathname, query } = url.parse(req.url, true) //获取处理后的请求地址
        //接受用户提交信息
    let formData = ''
    req.on('data', param => {
        formData += param;
        console.log('正在传输数据...')
    })
    req.on('end', async() => { //接受完毕之后触发
            console.log('传输数据完成...')
                // querystring.parse(formData) //处理传递参数方法
            let user = querystring.parse(formData);
            //     //通过ID查询数据库中的数据
            // let user = await User.findOne({ _id: query.id });
            // console.log(user)
            // 更新单个
            await User.updateOne({ _id: query.id }, user).then(() => console.log('修改成功!')).catch(err => { console.log('修改失败!' + err) })
                //客户端给出响应  //使用重定向301
            res.writeHead(301, {
                Location: '/list' //地址
            })
            res.end()
        })
        ///add结束
})

//公共内容开放出去
module.exports = router;
0

评论 (0)

取消