By Harttle 课程任务:23 个 免费加入
基于 Javascript 的全栈开发,以一个多用户的博客站点(http://demo.tianmaying.com/)开发为例!整个过程将涉及到:开发依赖管理、NoSQL数据库、自动构建、模板引擎等。
登录发表评论 登录 注册
第12课 Mongo数据库 注册用户的的数据,为何会提交到数据库的users里?users这个名称是在哪里定义的?
module.exports = mongoose.model('User', UserSchema);
这句里的User定义的不是数据集名称吗?
但在mongo里查询db.users.find()才能找到提交的数据。百思不得其解。
很好啊!100个赞,简单易懂。
第一章的实战任务链接找不到?
Anyone else ?
访问localhost:3000/account/register时出现404,拿不到页面怎么办?
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
创建Express项目的时候
在第3步 npm install 安装依赖时 有警告说 jade 已经更名为 pug 浏览器打开 没有进行处理,然后第四步 node ./bin/www 执行完 用http://localhost:3000 报错找不到module promise 如下,请大牛帮忙解答,谢谢了!
Error: Cannot find module 'promise'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (E:\temp\test\blog\node_modules\jade\node_modules\transformers\lib\shared.js:1:77)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at require (internal/module.js:12:17)可能是与node版本相关问题(之前node.jss是去菜鸟学院教程下载的)。我将node.js卸载,到node.js官网去下载最新版本node.js之后就可以了。
app.get('/',function(req,res){
res.send('Hello world');
});这段代码要放在 日志服务代码的后面,日志里面才会有内容。
我的log日志里面什么都没有 请问这是为什么呢@sergeantOng
我的log日志里面什么都没有 请问这是为什么呢
@sergeantOng
我的log日志也是什么都没有
创建 package.json是要到NPM官网吗?
// 保证激活码不会重复 user.activeToken = user._id buf.toString('hex');
id 后面的空格是什么啊
请问我在使用发布的包为什么自己创了个test.js却显示could not found module。。。。
修改一下就好
subject: 'test',
发邮件测试可以发给自己,但发别的邮箱就报错: Error: Message failed: 554 DT:SPM不知道怎么解决?@.绑定已有账号
发邮件测试可以发给自己,但发别的邮箱就报错:
Error: Message failed: 554 DT:SPM
不知道怎么解决?
@.绑定已有账号
<script src="/javascripts/account.js"></script>
这一句有问题吧,account.js是放在route里面的啊
我的log日志里记录的时间不是北京时间. 这个怎么处理呢?
谢谢回复。http://stackoverflow.com/questions/38138445/node3341-deprecationwarning-mongoose-mpromise
这个只是DeprecationWarning警告吧,并不是报错,再仔细检查一下代码和MongoDB的版本吧能不能讲清楚一点。连接MongoDB时,没有输出meow,而是报错了("Mongoose: mpromise is deprecated.")。卡到这儿半天了,真是郁闷。。谁能帮帮我。@.绑定已有账号@wangxu88323
这个只是DeprecationWarning警告吧,并不是报错,再仔细检查一下代码和MongoDB的版本吧
能不能讲清楚一点。连接MongoDB时,没有输出meow,而是报错了("Mongoose: mpromise is deprecated.")。卡到这儿半天了,真是郁闷。。谁能帮帮我。@.绑定已有账号
能不能讲清楚一点。连接MongoDB时,没有输出meow,而是报错了("Mongoose: mpromise is deprecated.")。
卡到这儿半天了,真是郁闷。。谁能帮帮我。
@wangxu88323
对,一定要加这个,否则 user.create是无法执行成功的。页面注册时会一直得不到返回。
user.js中没有数据库链接mongoose.connect('mongodb://localhost/test');@Yuanjie
user.js中没有数据库链接
mongoose.connect('mongodb://localhost/test');
@Yuanjie
yourenme
npm install express-hbs 和直接hbs两个得到的有什么区别?
hbs.registerPartials is not a function?
点击注册按钮后,返回错误页,状态码为500,是什么情况呀?
var router = require('express').Router(); router.route('/register') // 返回注册页面 .get(function (req, res) { res.render('account/register', {title: '注册'}); }) // 接受用户表单 .post(function (req, res, next) { var username = req.body.username, password = req.body.password; console.log('Register post received!'); console.log('username:', username, 'password::', password); }); module.exports = router;
错误处理中间件何时会执行呢?当然是当错误发生时。你需要手动地将错误传递给错误处理中间件。不放在app.js中创建如下的中间件来测试错误处理:
app.js
错别字。。
express现在生成的模块是用jade来实现,能否将“模板组织”这部分的内容说同步调整下(现在是用HBS)
修改了,谢谢
超时与代码中的时间不一致。代码中是3000,说明中是5000@Yuanjie
超时与代码中的时间不一致。代码中是3000,说明中是5000
一起交流啊
我在跟这个教程
有一块学习的吗?
@React_react-router 改过来了,谢谢
app.listen(1337, funcion(){ console.log('Example app listening on port 1337!'); });
function少了个t
右侧‘广场‘’笔记’可不可以收回去?@wangxu88323
右侧‘广场‘’笔记’可不可以收回去?
再点击一次就收回去了
app.use(session(session({secret: 'hello! TMY', resave: true, saveUninitialized: true})));
这里多写了1个session()吧...
@Harttle
老师,可能是我阅读时忽略了body-parser,
但是我觉得教程应适当更新一下,讲解一下body-parser包的作用
非常感谢,明白了,类似于一个是post,一个是get
这个图片好眼熟!
@wangxu88323,req.body为空可能是因为你没有引入bodyparser。查看一下app.js是否有问题。
@wangxu88323 req.body是用户提交表单对象,包括form元素通过浏览器提交的,和ajax post/put时提交的。req.query是URL的参数对象,例如:http://example.com?foo=bar中req.query.foo === 'bar'
把 req.body.username 改为 req.query.username
不报错了,但是收到username为空,对req.body和req.query还是不明白区别,请老师再详细的讲一下
TypeError: Cannot read property 'username' of undefined
我怀疑是req.body这里的问题
请求帮助
@Cliff
多谢,找到问题了,没写
app.engine('hbs', hbs.express4());
抱歉,安装完成后还差一步,在express中注册hbs引擎,教程已经更新:
var hbs = require('express-hbs'); app.engine('hbs', hbs.express4());
您好,express-hbs已安装,是不是需要先install hbs,然后再install express-hbs?
"dependencies": { "express": "^4.13.4", "express-hbs": "^1.0.1", "morgan": "^1.7.0", "serve-favicon": "^2.3.0" }
没有进行安装操作吧,首先我们需要安装Handlebars模板引擎:
$ npm install express-hbs --save
Cannot find module 'hbs'
8.1章 第三段代码第六行 ,最后是不是少个.toString() ?
var html = fs.readFileSync(__dirname + '/index.html');
@我就是我 gulp是新添加的内容,我们正准备将Grunt部分更新为gulp,近两天就会完成。
gulp那章为什么啥也没有
由于express相关npm库的版本更新,包括hbs模板引擎、session在内的工具可能需要更新版本(如lodash)和重新配置。
相关的课程内容可能需要修改(尚未完成),如需自己解决可以直接参考这些npm库的文档:
:)
在 session 课程中,我按照代码时间,所有的页面请求都会 出现
的问题。
@Toder你有没有完整做完的源码给我@Harttle
刚试了下可以了,谢谢各位的帮助。@颜卿今天Coding了吗 @qiyan147 @Harttle 。是我自己的问题,配置view路径时弄错了.
@provision你看看是不是路径错了 我照着学到那里也出现了这个问题 我是路径写错了
@provision 不是因为bug 是因为逗逼教程数据库存入时if语句{}忘了写了
同学们就跟着抄了
@Harttle aggre ,但是如果我一定要引用error.jade 呢
@provision这是因为你的程序有bug,然后触发了错误处理中间件function(err, req, res, next)。该函数中尝试渲染模板`views/error.hbs`,而`error.hbs`不存在所以Handlebars抛出了该错误。可以尝试在错误处理中间件中渲染模板前console.log(err)出来,或者添加一个error.hbs,并显示err的内容。比如:{{err.message}}{{err.stack}}
您好,我照着学到9课,到模板引擎那里,照着写的代码运行不了。
Error: Failed to lookup view "error" in views directory。一直报这个错误
课程全部开放了,欢迎大家学习和提供建议
@Friendy 我们天码营团队使用NodeJS开发已经有一年多了,就我的个人经验谈一下吧。
优势:
前后端纯JavaScript,小公司招JavaScript程序员就够了,另外前后端库还能更好地对接;
高并发,JavaScript没有为每一个HTTP Request单独开辟线程,而是使用底层框架实现异步IO事件,在应用层是单线程的,只要内存够大,并发不成问题。
极大的灵活性,Ruby,Python这些语言开始做Web开发后整个Web开发变得非常灵活,NodeJS也是这样一个极具灵活性的编程语言。可以在MVC模型上非常方便地添加额外的设计。
劣势:
中文资料少,貌似在国内还没有形成主流。解决问题需要查阅英文文档,API和NPM。
单线程的编程模型,异步风格可能会造成传统Web开发者的不习惯,需要有一个守护进程来监测线程的运行。
太灵活,没有太死的开发框架。需要开发者自己选用和实现能够满足需求的设计。
企业:
据我所知,LinkedIn,paypal,Netflix都在使用NodeJS,主要还是看重高并发的特性。而天码营看重的是它的灵活和可塑性。
学习曲线:
如果你是前端开发者,NodeJS的学习曲线是要低于其他框架的,毕竟你已经很习惯于JS以及它的异步回调风格。就我学习Node的过程而言,大多数时间都在学习新的设计和工具,而不是学习NodeJS本身。NodeJS本身很快就能掌握的。
使用 Node.js 的优势和劣势都有哪些? 前景怎样? 目前企业中用的多吗?学习曲线陡不陡?
老师能不能大致说一下
高级JavaScript 语言
node.js操作数据库成功后,怎样给网页一个提示
这个js代码 咋写?
div,li,ul都是block级别的元素,它们的宽度会自动填充整行。img是inline级别的元素,可以设置它父级的文本对齐属性让它居中。在这里,可以加CSS:
div
li
ul
img
li{ text-align: center; }
现在宽屏设计常见,为了适应不同的显示器,往往给div一个100%的宽度,下面再写,那么问题来了,这样的图片怎样做到在任何窗口宽度时自动居中显示?
```
Node.js是javascript运行时,就像JVM和Java的关系一样。简言之javascript是被node.js解释执行的。浏览器是javascript的另一种常见的运行时。
事实上,在javascript的术语中,node.js和浏览器被称为宿主环境
.NET是C#的运行时,同时提供了丰富的类库。Node.js是javascript的运行时,也提供了一些核心模块(相当于类库)。
express是Node.js的一个MVC框架,提供了在Node.js运行时上构建web应用的方式。
而npm是Node.js的包管理工具,这是Node.js与.NET不同的一点:在Node.js开发中我们不需要手动去寻找并下载安装第三方工具,npm会自动完成依赖的下载、构建和安装第三方工具。
jade只是一个模板引擎,可以理解为一种方便地创建HTML页面的工具。
话说,怎么理解node.js和Javascript之间的关系呀?
同是小白,多多指教
刚接触nodejs,看了下和它一起用的东西有很多,比如express、mongodb、mysql、redis、npm、jade。 我想问问大神们,其中mongodb、mysql、redis这3个是数据我知道,express是框架? npm、jade也是框架吗? 类似微软的.NET?
登录发表评论 登录 注册
第12课 Mongo数据库 注册用户的的数据,为何会提交到数据库的users里?users这个名称是在哪里定义的?
module.exports = mongoose.model('User', UserSchema);
这句里的User定义的不是数据集名称吗?
但在mongo里查询db.users.find()才能找到提交的数据。百思不得其解。
很好啊!100个赞,简单易懂。
第一章的实战任务链接找不到?
Anyone else ?
访问localhost:3000/account/register时出现404,拿不到页面怎么办?
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
创建Express项目的时候
在第3步 npm install 安装依赖时 有警告说 jade 已经更名为 pug 浏览器打开
没有进行处理,然后第四步 node ./bin/www 执行完 用http://localhost:3000 报错找不到module promise 如下,请大牛帮忙解答,谢谢了!
Error: Cannot find module 'promise'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (E:\temp\test\blog\node_modules\jade\node_modules\transformers\lib\shared.js:1:77)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
可能是与node版本相关问题(之前node.jss是去菜鸟学院教程下载的)。我将node.js卸载,到node.js官网去下载最新版本node.js之后就可以了。
app.get('/',function(req,res){
res.send('Hello world');
});
这段代码要放在 日志服务代码的后面,日志里面才会有内容。
我的log日志也是什么都没有
创建 package.json是要到NPM官网吗?
// 保证激活码不会重复 user.activeToken = user._id buf.toString('hex');
id 后面的空格是什么啊
我的log日志里面什么都没有 请问这是为什么呢
请问我在使用发布的包为什么自己创了个test.js却显示could not found module。。。。
修改一下就好
subject: 'test',
<script src="/javascripts/account.js"></script>
这一句有问题吧,account.js是放在route里面的啊
我的log日志里记录的时间不是北京时间. 这个怎么处理呢?
谢谢回复。http://stackoverflow.com/questions/38138445/node3341-deprecationwarning-mongoose-mpromise
这个只是DeprecationWarning警告吧,并不是报错,再仔细检查一下代码和MongoDB的版本吧
发邮件测试可以发给自己,但发别的邮箱就报错:
Error: Message failed: 554 DT:SPM
不知道怎么解决?
能不能讲清楚一点。连接MongoDB时,没有输出meow,而是报错了("Mongoose: mpromise is deprecated.")。
卡到这儿半天了,真是郁闷。。谁能帮帮我。
对,一定要加这个,否则 user.create是无法执行成功的。页面注册时会一直得不到返回。
yourenme
npm install express-hbs 和直接hbs两个得到的有什么区别?
hbs.registerPartials is not a function?
点击注册按钮后,返回错误页,状态码为500,是什么情况呀?
错别字。。
user.js中没有数据库链接
mongoose.connect('mongodb://localhost/test');
express现在生成的模块是用jade来实现,能否将“模板组织”这部分的内容说同步调整下(现在是用HBS)
修改了,谢谢
超时与代码中的时间不一致。代码中是3000,说明中是5000
一起交流啊
我在跟这个教程
有一块学习的吗?
@React_react-router 改过来了,谢谢
app.listen(1337, funcion(){ console.log('Example app listening on port 1337!'); });
function少了个t
再点击一次就收回去了
app.use(session(session({secret: 'hello! TMY', resave: true, saveUninitialized: true})));
这里多写了1个session()吧...
@Harttle
老师,可能是我阅读时忽略了body-parser,
但是我觉得教程应适当更新一下,讲解一下body-parser包的作用
@Harttle
非常感谢,明白了,类似于一个是post,一个是get
这个图片好眼熟!
@wangxu88323,req.body为空可能是因为你没有引入bodyparser。查看一下app.js是否有问题。
@wangxu88323 req.body是用户提交表单对象,包括form元素通过浏览器提交的,和ajax post/put时提交的。req.query是URL的参数对象,例如:http://example.com?foo=bar中req.query.foo === 'bar'
把 req.body.username 改为 req.query.username
不报错了,但是收到username为空,对req.body和req.query还是不明白区别,请老师再详细的讲一下
TypeError: Cannot read property 'username' of undefined
我怀疑是req.body这里的问题
@Cliff
app.engine('hbs', hbs.express4());
@wangxu88323
抱歉,安装完成后还差一步,在express中注册hbs引擎,教程已经更新:
var hbs = require('express-hbs'); app.engine('hbs', hbs.express4());
@Cliff
您好,express-hbs已安装,是不是需要先install hbs,然后再install express-hbs?
@wangxu88323
没有进行安装操作吧,首先我们需要安装Handlebars模板引擎:
$ npm install express-hbs --save
Cannot find module 'hbs'
8.1章 第三段代码第六行 ,最后是不是少个.toString() ?
@我就是我 gulp是新添加的内容,我们正准备将Grunt部分更新为gulp,近两天就会完成。
gulp那章为什么啥也没有
由于express相关npm库的版本更新,包括hbs模板引擎、session在内的工具可能需要更新版本(如lodash)和重新配置。
相关的课程内容可能需要修改(尚未完成),如需自己解决可以直接参考这些npm库的文档:
:)
在 session 课程中,我按照代码时间,所有的页面请求都会 出现
secret option required for sessions
的问题。
@Toder你有没有完整做完的源码给我@Harttle
刚试了下可以了,谢谢各位的帮助。@颜卿今天Coding了吗 @qiyan147 @Harttle 。是我自己的问题,配置view路径时弄错了.
@provision你看看是不是路径错了 我照着学到那里也出现了这个问题 我是路径写错了
@provision 不是因为bug 是因为逗逼教程数据库存入时if语句{}忘了写了
同学们就跟着抄了
@Harttle aggre ,但是如果我一定要引用error.jade 呢
@provision这是因为你的程序有bug,然后触发了错误处理中间件function(err, req, res, next)。该函数中尝试渲染模板`views/error.hbs`,而`error.hbs`不存在所以Handlebars抛出了该错误。可以尝试在错误处理中间件中渲染模板前console.log(err)出来,或者添加一个error.hbs,并显示err的内容。比如:{{err.message}}{{err.stack}}
您好,我照着学到9课,到模板引擎那里,照着写的代码运行不了。
Error: Failed to lookup view "error" in views directory。一直报这个错误
课程全部开放了,欢迎大家学习和提供建议
@Friendy 我们天码营团队使用NodeJS开发已经有一年多了,就我的个人经验谈一下吧。
优势:
前后端纯JavaScript,小公司招JavaScript程序员就够了,另外前后端库还能更好地对接;
高并发,JavaScript没有为每一个HTTP Request单独开辟线程,而是使用底层框架实现异步IO事件,在应用层是单线程的,只要内存够大,并发不成问题。
极大的灵活性,Ruby,Python这些语言开始做Web开发后整个Web开发变得非常灵活,NodeJS也是这样一个极具灵活性的编程语言。可以在MVC模型上非常方便地添加额外的设计。
劣势:
中文资料少,貌似在国内还没有形成主流。解决问题需要查阅英文文档,API和NPM。
单线程的编程模型,异步风格可能会造成传统Web开发者的不习惯,需要有一个守护进程来监测线程的运行。
太灵活,没有太死的开发框架。需要开发者自己选用和实现能够满足需求的设计。
企业:
据我所知,LinkedIn,paypal,Netflix都在使用NodeJS,主要还是看重高并发的特性。而天码营看重的是它的灵活和可塑性。
学习曲线:
如果你是前端开发者,NodeJS的学习曲线是要低于其他框架的,毕竟你已经很习惯于JS以及它的异步回调风格。就我学习Node的过程而言,大多数时间都在学习新的设计和工具,而不是学习NodeJS本身。NodeJS本身很快就能掌握的。
使用 Node.js 的优势和劣势都有哪些? 前景怎样? 目前企业中用的多吗?学习曲线陡不陡?
老师能不能大致说一下
高级JavaScript 语言
node.js操作数据库成功后,怎样给网页一个提示
这个js代码 咋写?
div
,li
,ul
都是block级别的元素,它们的宽度会自动填充整行。img
是inline级别的元素,可以设置它父级的文本对齐属性让它居中。在这里,可以加CSS:现在宽屏设计常见,为了适应不同的显示器,往往给div一个100%的宽度,下面再写,那么问题来了,这样的图片怎样做到在任何窗口宽度时自动居中显示?
```
```
Node.js是javascript运行时,就像JVM和Java的关系一样。简言之javascript是被node.js解释执行的。浏览器是javascript的另一种常见的运行时。
事实上,在javascript的术语中,node.js和浏览器被称为宿主环境
.NET是C#的运行时,同时提供了丰富的类库。Node.js是javascript的运行时,也提供了一些核心模块(相当于类库)。
express是Node.js的一个MVC框架,提供了在Node.js运行时上构建web应用的方式。
而npm是Node.js的包管理工具,这是Node.js与.NET不同的一点:在Node.js开发中我们不需要手动去寻找并下载安装第三方工具,npm会自动完成依赖的下载、构建和安装第三方工具。
jade只是一个模板引擎,可以理解为一种方便地创建HTML页面的工具。
话说,怎么理解node.js和Javascript之间的关系呀?
同是小白,多多指教
刚接触nodejs,看了下和它一起用的东西有很多,比如express、mongodb、mysql、redis、npm、jade。 我想问问大神们,其中mongodb、mysql、redis这3个是数据我知道,express是框架? npm、jade也是框架吗? 类似微软的.NET?