`

node.js之启动监听

阅读更多

--该代码是nodejs启动时的一段。

--代码注释尚未补全,已有注释不当之处还望不吝赐教

/**
 * Module dependencies.
 */

var app = require('../app');
var debug = require('debug')('untitled:server');
var http = require('http');

/**
 * Get port from environment and store in Express.
 * 80端口看自己需要可修改
 */
var port = normalizePort(process.env.PORT || '80');
app.set('port', port);

/**
 * Create HTTP server.
 */

var server = http.createServer(app);

/**
 * Listen on provided port, on all network interfaces.
 *开启监听-可指定端口号和IP
 *这里注意若服务器hosts文件没有做127.0.0.1和localhost的映射那么可能需要下面的IP,否则你懂得
 *感谢@IPPP
 *至于公网映射推荐ngrok工具
 */
server.listen(port,'127.0.0.1');
console.log("服务已启动~~~");
//服务出错执行onError函数
server.on('error', onError);
//服务监听状态及其地址端口信息-尚未知晓如何使用!
server.on('listening', onListening);

/**
 * Normalize a port into a number, string, or false.
 */

function normalizePort(val) {
  var port = parseInt(val, 10);

  if (isNaN(port)) {
    // named pipe
    return val;
  }

  if (port >= 0) {
    // port number
    return port;
  }

  return false;
}

/**
 * Event listener for HTTP server "error" event.
 */

function onError(error) {
  if (error.syscall !== 'listen') {
    throw error;
  }

  var bind = typeof port === 'string'
    ? 'Pipe ' + port
    : 'Port ' + port;

  // handle specific listen errors with friendly messages
  switch (error.code) {
    case 'EACCES':
      console.error(bind + ' requires elevated privileges');
      //进程终止
      process.exit(1);
      break;
    case 'EADDRINUSE':
      console.error(bind + ' is already in use');
      process.exit(1);
      break;
    default:
      throw error;
  }
}

/**
 * Event listener for HTTP server "listening" event.
 */
function onListening() {
  var addr = server.address();
  var bind = typeof addr === 'string'
    ? 'pipe ' + addr
    : 'port ' + addr.port;
  debug('Listening on ' + bind);
  console.log('Listening on ' + bind);
}

 ---------------------------------------------------------------------------------------------------------------------

*、@IPPP

解决IP问题的灵感来源于
https://my.oschina.net/tearlight/blog/195543
很棒
曾经出现的问题是:不提供hostname只能使用localhost访问,后来不提供也能通过三种方式访问,很奇怪的说!

 

 

分享到:
评论

相关推荐

    Node.js-Node.js全局键盘和鼠标侦听器

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它允许开发者在服务器端使用 JavaScript 进行编程。在标题“Node.js-Node.js全局键盘和鼠标侦听器”中,提及的是如何在 Node.js 环境下实现对键盘和鼠标...

    Node.js实现聊天室功能

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它以其异步、事件驱动的非阻塞I/O模型而闻名,非常适合构建高性能的网络应用,如聊天室。 首先,让我们了解Node.js的核心概念。Node.js使用事件循环来处理...

    Node.js-server.jsforNode.js一个简单而强大的Node.js服务器

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发者使用JavaScript进行服务器端编程。在给定的"server.js"文件中,我们可以推测它是一个简单的Node.js服务器示例,用于演示如何在Node.js环境中处理...

    Node.js-利用websocket实现简单的外网映射工具便于日常调试接口

    在IT行业中,Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它以其高效的非阻塞I/O模型和异步事件驱动而闻名,尤其适合构建网络服务。本项目以"Node.js-利用websocket实现简单的外网映射工具便于日常调试...

    Node.js学习笔记.md

    - 运行node命令可以启动Node.js的交互式shell,这是一个可以即时执行JavaScript代码的环境。 - 在交互式shell中,输入JavaScript代码并按下回车即可执行,并显示结果。 - 在交互式shell中,连续按两次Ctrl+C可以...

    Professional Node.js Building Javascript Based Scalable Software

    ### 专业Node.js:构建基于JavaScript的可扩展软件 #### 引言 随着网络应用程序的不断增长和发展,对高效、可扩展的技术栈需求也日益增加。Node.js作为一款基于Chrome V8引擎的JavaScript运行环境,提供了强大的...

    Node.js-基于MySQLNode.jsLeaflet的离线地图展示

    【标题】:“Node.js-基于MySQLNode.jsLeaflet的离线地图展示”是一个项目,它利用了Node.js作为后端开发环境,结合MySQL数据库存储地图数据,以及Leaflet这个JavaScript库来实现离线地图的展示功能。这个项目旨在...

    Node.js - How To Code in Node.js

    Node.js 支持启动子进程,这对于执行长时间运行的任务或者与操作系统交互非常有用。本章节将详细介绍如何使用 child_process 模块来创建和管理子进程。 #### 十四、如何使用 fs 模块处理文件 fs(File System)...

    Node.js-使用Node.js创建Steam机器人和网站的一份指南

    Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它以其高效的非阻塞I/O模型和丰富的生态系统而受到开发者喜爱。通过结合Node.js和Steam API,我们可以构建交互式、自动化的工作流程,例如自动购买游戏、交易...

    Node.js-使用node做server的基础脚手架基于egg.js

    Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境,它让开发者能够在服务器端使用 JavaScript 进行编程,极大地推动了全栈开发的流行。Egg.js 是一个由阿里云开发的企业级 Node.js 框架,旨在提供一套高效...

    Node.js-proxy基于electron开发的内网穿透工具

    1. **启动代理服务器**:Node.js程序启动一个代理服务器,监听公网上的某个端口。 2. **连接映射**:用户在应用程序中配置内网服务的地址和端口,以及公网上的代理端口。 3. **数据转发**:当公网上的请求到达代理...

    使用node-inspector调试Node.js

    `--inspect`或`--inspect-brk`会让Node.js监听调试端口,并在启动时暂停,这样我们可以在代码的第一行开始调试。 现在,`node-inspector`应该已经连接到了你的Node.js进程。你可以看到源代码、设置断点、查看变量值...

    基于node.js简单搭建即时聊天服务器

    【Node.js】:Node.js是基于Chrome V8引擎的JavaScript运行环境,它允许开发者在服务器端使用JavaScript编写代码,提供了一个高效的事件驱动、非阻塞I/O模型,非常适合处理并发连接,如聊天服务器。 【Express】:...

    Node.js-使用Node.js和Puppeteer创建Web爬虫

    Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者在服务器端执行JavaScript代码。Node.js基于Chrome V8引擎,因此它具有高性能和高效率。Puppeteer是Google Chrome团队开发的一个Node库,它提供...

    team-work-master.zip_Node.js_node.js mysql_node.js+mysql_nodejs

    1. **服务器配置**:包含启动服务器的主文件,如`index.js`,这里定义了监听端口,设置路由和中间件等。 2. **数据库配置**:可能有`config.js`或类似的文件,用于设置MySQL的连接参数,如数据库名、用户名、密码和...

    Node.js-Node.js和Mongoose的高级GraphQL服务器

    首先,Node.js是一个开放源代码、跨平台的JavaScript运行环境,它允许开发者在服务器端运行JavaScript代码。Node.js基于Chrome的V8引擎,提供了快速、轻量级且高效的应用程序开发框架。它广泛用于构建实时的、可伸缩...

    Node.js-Node.jsexpressMongoDB搭建个人博客

    首先,Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许我们在服务器端使用JavaScript编写代码,打破了传统的前端与后端的界限。Node.js拥有丰富的生态系统,提供了大量的模块,如Express,用于简化Web...

    Node.js-观察node应用中什么时候开始监听TCP端口

    当一个Node.js应用程序启动并监听特定端口时,它就变成了一个服务器,等待客户端的连接请求。 标题"Node.js-观察node应用中什么时候开始监听TCP端口"关注的核心在于掌握如何在Node.js中监控这一过程。通常,监听TCP...

    Node.js-基于RubbitMQ的node微服务框架

    Node.js作为一款轻量级、高性能的JavaScript运行环境,非常适合构建微服务。而RabbitMQ作为一种流行的消息队列系统,常被用于微服务间的通信,以实现解耦、异步处理和负载均衡。本项目“Node.js-基于RabbitMQ的Node...

    Node.js和Socket.IO扩展Django的实时处理功能_.docx

    - 启动Node.js服务器,确保它能够正确接收和处理Socket.IO事件。 - 在多个客户端上打开聊天室页面,测试实时聊天功能。 通过这种方式,Django的后端处理业务逻辑和数据存储,Node.js与Socket.IO负责实时通信,...

Global site tag (gtag.js) - Google Analytics