Nodejs新手学习node.js的感受
Nodejs新手学习node.js的感受
说来好笑,大学时还在DOS时代,仅学会了盲打和五笔字型(不过这两项基本功倒让我受益匪浅,工作效率比一般人高得多)。毕业后跟鬼佬接触较早,通过VBA、VB ActiveX DLL和SQL Server将MS EXCEL的功能榨取干净了。后来因为个人野心,指望将桌面APP转向富客户端的WEB编程,花了不少时间在C#和Silverlight上。随着去年Microsoft宣布对Silverlight的放弃,在搞懂ASP和Silverlight之前,硬着头皮转向了Node.js。通过半年的学习,有如下体会,仅供有类似经历的入门菜鸟参考,也请老鸟们不吝更正,并手下留情,不要耻笑,以免打击本新生的信心: 1、先将Node.js丢在一边,学习以Javascript做些客户端开发,以尽快跨入Javascript门槛。 作为入门者,应从Javascript基本入手,避免将jQuery当Javascript,在掌握Javascript精髓之前去学习Node.js也难以入门。 推荐的Javascript参考书为《JavaScript高级程序设计(第3版).Professional JavaScript for Web Developers, 3rd Edition》,HTML5-CSS参考资料为《十天学会DIV+CSS(WEB标准)_标准之路.chm》。我这半年时间里大部分时间花在前端研究上,采用OOP编程方式,做出了非常复杂的基于HTML5 Canvas类似于GDI+的富客户端应用。 2、熟悉Javascript语言之后,开始学习Node.js。也是从基本入手,而暂时将EXPRESS框架、模板等丢在一边。推荐的书籍为《Node Cookbook》。 3、在学习HTML5、Javascript、Node.js的过程中慢慢根据需要,去熟悉HTTP、Cookie/Session, Ajax等内容,而不要找太厚的专题书籍去深入研究。 4、最后根据开发的需要,筛选和采用第三方框架。 5、参考书非常重要,不好的参考书就象指向错误方向的路标一样,让你不得要领,关键的是浪费了时间。 话说回来,我的目标倒不是想做得太专业,只是希望能够将装在脑袋中的在行业和社交应用上的创意做出原型出来,供专业团队去开发,从而寻找市场投资的机会。QQ:821727745.
.
Nodejs新手学习node.js的感受
说来好笑,大学时还在DOS时代,仅学会了盲打和五笔字型(不过这两项基本功倒让我受益匪浅,工作效率比一般人高得多)。毕业后跟鬼佬接触较早,通过VBA、VB ActiveX DLL和SQL Server将MS EXCEL的功能榨取干净了。后来因为个人野心,指望将桌面APP转向富客户端的WEB编程,花了不少时间在C#和Silverlight上。随着去年Microsoft宣布对Silverlight的放弃,在搞懂ASP和Silverlight之前,硬着头皮转向了Node.js。通过半年的学习,有如下体会,仅供有类似经历的入门菜鸟参考,也请老鸟们不吝更正,并手下留情,不要耻笑,以免打击本新生的信心:
1. 先将Node.js丢在一边,学习以Javascript做些客户端开发,以尽快跨入Javascript门槛。
作为入门者,应从Javascript基本入手,避免将jQuery当Javascript,在掌握Javascript精髓之前去学习Node.js也难以入门。推荐的Javascript参考书为《JavaScript高级程序设计(第3版)》和《Professional JavaScript for Web Developers, 3rd Edition》,HTML5-CSS参考资料为《十天学会DIV+CSS(WEB标准)_标准之路.chm》。我这半年时间里大部分时间花在前端研究上,采用OOP编程方式,做出了非常复杂的基于HTML5 Canvas类似于GDI+的富客户端应用。
示例代码:
// 基于HTML5 Canvas绘制一个简单的圆形
const canvas = document.getElementById('myCanvas');
const ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(95, 50, 40, 0, 2 * Math.PI);
ctx.stroke();
2. 熟悉Javascript语言之后,开始学习Node.js。也是从基本入手,而暂时将EXPRESS框架、模板等丢在一边。推荐的书籍为《Node Cookbook》。
示例代码:
// 创建一个简单的HTTP服务器
const http = require('http');
http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(3000);
console.log('Server running at http://localhost:3000/');
3. 在学习HTML5、Javascript、Node.js的过程中慢慢根据需要,去熟悉HTTP、Cookie/Session, Ajax等内容,而不要找太厚的专题书籍去深入研究。
4. 最后根据开发的需要,筛选和采用第三方框架。
5. 参考书非常重要,不好的参考书就象指向错误方向的路标一样,让你不得要领,关键的是浪费了时间。
话说回来,我的目标倒不是想做得太专业,只是希望能够将装在脑袋中的在行业和社交应用上的创意做出原型出来,供专业团队去开发,从而寻找市场投资的机会。QQ:821727745.
这段文字总结了我的Node.js学习过程和一些心得体会。希望对那些刚入门Node.js的朋友有所帮助。
嗯,不错。学习新的东西最忌讳从框架搞起来,lz的学习路线还是不错的,入门了之后多写代码,多看优秀的开源代码会进步的更快。
lz的经验很宝贵, nodejs新手看到这个就有福了.
简单点讲,如果学习node.js困难,很可能是因为学习javascript困难,或者是因为跳过了打javascript基础这关键的一步。
Cookie/Session 这个有没有什么比较好的,比较薄的书可以看?
《Node Cookbook》第七章有原理的详细介绍,建议作为学习,自己写个简单的function来解决,然后再找第三方专业模块来应用。
个人感觉学 Node 就是学会 JS, 然后去学用 JS 做 JS 以往擅长的领域以外事情… 然后就一大堆其他领域的知识要学了… 比如学 Ruby 的模块化和 Web 框架
请问一定要学Ruby么?虽然还木去了解Ruby的学习成本,但就目前来说我懒啊,JS都够我一段时间了
LZ的QQ能+问题儿童么,我有很多问题
Hi, BiGMuSiC, 我主要在研究以Canvas为核心的HTML5富客户端应用,用来做产品原型。后端的经验是菜鸟,同时目标也设定得很低,只希望搞掂数据库的增删改查以及文件的上传下载即可。 非常乐意QQ交流,只是大部分的问题可能回答不了。 如果有LZ有基于云的产品计划,也非常乐意交流合作。 此致 codeFan01
同感,还有很多后台的原理什么的,HTTP什么的更是要恶补
可惜咱们是英盲《Node Cookbook》不知道何时中文版才有,或者已经有了,推荐下购买地址。或者pdf的电子书链接地址。
学习Node.js对于新手来说确实是一段充满挑战但也非常有趣的旅程。以下是我作为新手的一些感受以及一些简单的代码示例来帮助理解。
学习Node.js的感受
-
从JavaScript基础入手
- 在学习Node.js之前,首先需要熟悉JavaScript的基础知识。建议先阅读《JavaScript高级程序设计(第3版)》这本书,它涵盖了JavaScript的核心概念和高级特性。
-
逐步学习Node.js
- 当你掌握了JavaScript的基本语法后,可以开始学习Node.js。推荐使用《Node Cookbook》这本书来引导你的学习过程。初期可以不用涉及复杂的框架如Express等,先从基础开始。
-
实践项目
- 实践是检验真理的唯一标准。通过做一些小项目,例如创建一个简单的Web服务器或实现一个API接口,可以帮助你更好地理解和掌握Node.js。
示例代码
创建一个简单的HTTP服务器
const http = require('http');
// 创建一个简单的HTTP服务器
const server = http.createServer((req, res) => {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
});
server.listen(3000, () => {
console.log('Server is running on port 3000');
});
实现一个简单的API接口
const http = require('http');
const url = require('url');
const server = http.createServer((req, res) => {
const parsedUrl = url.parse(req.url, true);
const path = parsedUrl.pathname;
const method = req.method;
if (path === '/api/data' && method === 'GET') {
res.writeHead(200, { 'Content-Type': 'application/json' });
res.end(JSON.stringify({ message: 'Hello from API' }));
} else {
res.writeHead(404, { 'Content-Type': 'text/plain' });
res.end('Not Found');
}
});
server.listen(3000, () => {
console.log('Server is running on port 3000');
});
总结
学习Node.js的过程就像搭建一座桥,从JavaScript的基础到构建实际的应用,每一步都是积累和成长。希望这些简单的代码示例能够帮助你更好地理解Node.js,并鼓励你在实践中不断探索和进步。