【NodeJS】学习笔记和参考资料

半城伤御伤魂 提交于 2019-12-18 18:31:41

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

NODE JS 笔记篇|>>----------------------------------------------------------------------------------------------------

1、相关基础命令行操作

Install express
npm install -g express
Create a new app
express your_app
cd into app directory
cd your_app
use npm link to resolve modules
npm link express
Set NODE_PATH=NODE_HOME\node_modules
https://github.com/visionmedia/express/wiki/Migrating-from-2.x-to-3.x
renamed app.register() to app.engine()

2、Node和npm在 Mac 中的默认安装目录

Node was installed at  /usr/local/bin/node
npm was installed at  /usr/local/bin/npm

    Make sure that /usr/local/bin is in your $PATH.

3、阻塞与非阻塞 

    下面的代码中,当函数start()被调用的时候,Node.js会先等待10秒,之后才会返回“Hello Start”。

    当调用upload()的时候,会和此前一样立即返回。(当然了,这里只是模拟休眠10秒,实际场景中,这样的阻塞操作有很多,比方说一些长时间的计算操作等。)

    接下来就让我们来看看,我们的改动带来了哪些变化。如往常一样,我们先要重启下服务器。

    为了看到效果,我们要进行一些相对复杂的操作(跟着我一起做): 首先,打开两个浏览器窗口或者标签页。在第一个浏览器窗口的地址栏中输入http://localhost:8888/start, 但是先不要打开它!在第二个浏览器窗口的地址栏中输入http://localhost:8888/upload, 同样的,先不要打开它!

    接下来,做如下操作:在第一个窗口中(“/start”)按下回车,然后快速切换到第二个窗口中(“/upload”)按下回车。

    注意,发生了什么: /start URL加载花了10秒,这和我们预期的一样。但是,/upload URL居然也花了10秒,而它在对应的请求处理程序中并没有类似于sleep()这样的操作!

    这到底是为什么呢?原因就是start()包含了阻塞操作。形象的说就是“它阻塞了所有其他的处理工作”。

function start() {
  console.log("Request handler 'start' was called.");
  function sleep(milliSeconds) {
    var startTime = new Date().getTime();
    while (new Date().getTime() < startTime + milliSeconds);
  }
  sleep(10000);
  return "Hello Start";
}
function upload() {
  console.log("Request handler 'upload' was called.");
  return "Hello Upload";
}
exports.start = start;
exports.upload = upload;

4、response.write 输出格式

    "Content-Type": "text/plain"  // 以字符串形式插入到页面中

    "Content-Type": "text/html"  // 以 html 形式插入到页面中

response.writeHead(200, {"Content-Type": "text/plain"});
response.write(html);
response.end();

NODE JS 资料篇|>>----------------------------------------------------------------------------------------------------

1、相关资料列表:

2、Node 开发框架 Express 资料

    Express是一款基于Node.js的高性能高级Web框架。

    如果你以前用过Ruby社区的Sinatra框架,你会觉得Express和它的风格很像。

    按照程序猿和攻城狮们的惯例,来个Hello World

var app = express.createServer();
app.get('/', function(req, res){
    res.send('Hello World');
}); 
app.listen(3000);

    想看文档教程神马的,请到官网:http://expressjs.com

    Express的源码托管在这里:https://github.com/visionmedia/express

    Express使用了Connect中间件,Connect的文档在这里:http://senchalabs.github.com/connect/

    如果你想做单元测试,可以看看TDD框架Expresso:http://visionmedia.github.com/expresso/

    Express可选的Jade模板引擎也挺有趣的,它和haml是亲戚,像是个HTML预编译器:http://jade-lang.com/

    说到haml,你也可以了解下sass,它像一个CSS预编译器:https://github.com/visionmedia/sass.js

    不过同类产品中,我更喜欢不那么激进的less:https://github.com/cloudhead/less.js

    Express框架之app.js配置文件说明:http://my.oschina.net/youdoce/blog/68658

    Express.js 中文入门指引手册:http://my.oschina.net/youdoce/blog/68476

NODE JS 教程篇|>>----------------------------------------------------------------------------------------------------

【官方网站】好吧,阅读英语文档能力强的直接入

http://nodejs.org/about/

【入门教程】从helloworld开始,需要一定基础知识

http://www.nodebeginner.org/index-zh-cn.html

http://my.oschina.net/maomi/blog/80388

【帮助教程】

深刻理解nodejs “基于事件驱动的回调”

http://debuggable.com/posts/understanding-node-js:4bd98440-45e4-4a9a-8ef7-0f7ecbdd56cb

 Martin Fowlers关于依赖注入的大作

http://martinfowler.com/articles/injection.html

 《名词王国中的死刑》

译文:http://justjavac.iteye.com/blog/1604046

原文:http://steve-yegge.blogspot.com/2006/03/execution-in-kingdom-of-nouns.html

【安装教程】Windows下使用NodeJS和npm安装UglifyJS对JavaScript进行压缩或美化(参考第一二步即可)

http://www.cnblogs.com/sorex/archive/2011/12/14/2287635.html

node -v //查看nodejs版本
 
npm -v //查看npm版本

image

【使用运行】

安装之后,建立文件夹,编写测试js文件,cmd 进入包含测试js文件的文件夹,运行

cd e://test/nodejs/example.js  //进入测试文件所在文件夹

node example.js                //执行该js脚本
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!