-
用户的模式,名称唯一查看全部
-
直接输入grunt 命令就可以跑起项目查看全部
-
concurrent 配置项查看全部
-
nodemon查看全部
-
grunt.initConfig({})查看全部
-
grunt.option('force', true); 设置为TRUE,不会因为警告而中止程序运行,最后 grunt.registerTask('default', ['concurrent']);查看全部
-
grunt-concurrent 插件是为慢任务服务,less/sass/watch 等优化构建的时间查看全部
-
grunt-nodemon 插件是监听 app.js,当发生改动则自动重启app.js查看全部
-
npm install grunt-contrib-watch 这个插件功能是只要有文件增加修改删除都会重新执行里面注册好的任务查看全部
-
安装 grunt 和 grunt 的命令行接口 grunt-cli查看全部
-
在控制台指定端口启动应用程序:PORT=4000 node app.js查看全部
-
这里的delete加中间键的原因,一开始认为没必要,毕竟没权限连/admin/list都进不去 现在想想,加上去也好,毕竟进去了可能同样是管理员,管理员也分级别的。有些管理员就不能删,只能看 又这样想之后发现不对啊,那这样的话又得改一些东西了,现在不用还是删了吧,等再加功能而已,现在就不要那么冗余了查看全部
-
Movie.savePoster查看全部
-
/** * 用户注册 * /user/signup => req.body.userid * /user/signup/:userid => req.params.userid * /user/signup/111?userid=222 => req.query.userid * */ app.post('/user/signup', (req, res) => { let _user = req.body.user; // let _user = req.param('user'); // 也可以拿到数据 if (!_user) return; // 简单判断是否是空字符、实际中在前端实现 if ('' === _user.name.trim()) return res.redirect('/'); let __user = new User(_user); // 注意点一、 实例化的变量要注意不能与其他变量名冲突 // 检查用户名是否冲突 User.findOne({name: _user.name}, (err, user) => { // 注意点二、 我这里敲错,User 写成了user,find改成findOne才能得到预期结果 if (err) console.log(err); if (user) { // 用户名已注册 return res.redirect('/'); } else { // 用户名未注册 __user.save((err, user) => { // 注意点三、 跟第一点是对应的,我这里写成了user跟User.findOne的回调函数参数冲突所以报错,这里要使用User new之后的实例 if (err) console.log(err); res.redirect('/admin/userlist'); }) } }); });查看全部
-
callback方式获取评论查看全部
举报
0/150
提交
取消