Node.js从入门到实战(一)

一、Intellj Idea下的初始工程

使用Idea创建的Node.js Express工程创建成功后运行,


访问localhost:3000即可以看到如下页面:


二、代码分析

第一个工程命名为PageIron,该项目的主要代码位于PageIron/bin/www文件中:


Node.js 应用的组成部分:

  1. 引入 required 模块:我们可以使用 require 指令来载入 Node.js 模块。
  2. 创建服务器:服务器可以监听客户端的请求,类似于 Apache 、Nginx 等 HTTP 服务器。
  3. 接收请求与响应请求 

代码如下:

1. required模块:

  1. /**
  2. * Module dependencies.
  3. */
  4. var app = require( '../app');
  5. var debug = require( 'debug')( 'pageiron:server');
  6. var http = require( 'http');

2.创建服务器

  1. /**
  2. * Get port from environment and store in Express.
  3. */
  4. var port = normalizePort(process.env.PORT || '3000');
  5. app.set( 'port', port);
  6. /**
  7. * Create HTTP server.
  8. */
  9. var server = http.createServer(app);

3. 接受请求和相应

  1. /**
  2. * Listen on provided port, on all network interfaces.
  3. */
  4. server.listen(port);
  5. server.on( 'error', onError);
  6. server.on( 'listening', onListening);
  1. /**
  2. * Event listener for HTTP server "error" event.
  3. */
  4. function onError(error) {
  5. if (error.syscall !== 'listen') {
  6. throw error;
  7. }
  8. var bind = typeof port === 'string'
  9. ? 'Pipe ' + port
  10. : 'Port ' + port;
  11. // handle specific listen errors with friendly messages
  12. switch (error.code) {
  13. case 'EACCES':
  14. console.error(bind + ' requires elevated privileges');
  15. process.exit( 1);
  16. break;
  17. case 'EADDRINUSE':
  18. console.error(bind + ' is already in use');
  19. process.exit( 1);
  20. break;
  21. default:
  22. throw error;
  23. }
  24. }
  25. /**
  26. * Event listener for HTTP server "listening" event.
  27. */
  28. function onListening() {
  29. var addr = server.address();
  30. var bind = typeof addr === 'string'
  31. ? 'pipe ' + addr
  32. : 'port ' + addr.port;
  33. debug( 'Listening on ' + bind);
  34. }

三、Node.js实例

如下是一个Node.js创建的实例:

  1. var events = require( 'events');
  2. var eventsEmmiter = new events.EventEmitter();
  3. var connectHandler = function connected(){
  4. console.log( 'connected');
  5. eventsEmmiter.emit( 'data_received');
  6. }
  7. eventsEmmiter.on( 'connection', connectHandler);
  8. eventsEmmiter.on( 'data_received', function(){
  9. console.log( "数据接收成功");
  10. });
  11. eventsEmmiter.emit( 'connection');
  12. console.log( '程序执行完毕');
代码文件命名为main.js,使用如下命令运行:

$ node main.js
结果如下:

  1. connected
  2. 数据接收成功
  3. 程序执行完
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值