iis服务器助手广告广告
返回顶部
首页 > 资讯 > 服务器 >教你快速搭建Node.Js服务器的方法教程
  • 597
分享到

教你快速搭建Node.Js服务器的方法教程

教你快速服务器 2022-06-04 17:06:56 597人浏览 泡泡鱼
摘要

前言 node.js 是一个事件驱动 I/O 服务端 javascript 环境,也可以理解为服务器端运行的 JavaScript。js 作为一门编程语言,是运行在称为 JS 运行时的虚拟机中的,而在 I

前言

node.js 是一个事件驱动 I/O 服务端 javascript 环境,也可以理解为服务器端运行的 JavaScript。js 作为一门编程语言,是运行在称为 JS 运行时的虚拟机中的,而在 I/O 功能上,JS 更多依赖于宿主环境。一般我们遇到的宿主环境主要是浏览器,node.js 则是在服务器端运行的高速 JavaScript 解释器。

近期遇到一个小型网站需要建立一个简单的 WEB 服务器,原本想用 springMVC 解决,无奈 spring 的哲学博大精深,自己才疏学浅,不能快速出货,因此决定用 Node.js 试试,这里就简单介绍下如何快速启动一个简单易用的 Web Server。这里我使用的开发环境是基于 ubuntu 14.04 的 Elementary OS。

1. 准备工作

1.1 安装 nodejs 环境和 npm 模块管理器


sudo apt-get install nodejs
sudo apt-get install npm

npm 是一个优秀的 Node 模块管理器,在开发中帮助我们解决很多第三方代码库的依赖管理事务

1.2 设置 npm 代理

假如没有提前做任何额外措施,那么必然当你使用 npm 从网络下载自己需要的 NodeJs 模块时,速度会非常慢,甚至会因超时而失败,具体原因不多讲,推荐使用淘宝的 npm 镜像,问题会得到解决。

打开 ~/.npmrc 文件 输入 reGIStry = https://registry.npm.taobao.org 保存退出

注意如果你曾设置过全局穿墙但是 npm 依然速度很慢,可以试试在 ~/.npmrc 文件中继续添加

proxy=false

2. 用 Express Generator 搭建开发环境

Express 是目前最流行的基于 Node.js 的 Web 开发框架,可以快速地搭建一个完整功能的网站。

Express Generator 是 Express 的应用程序生成器工具,使用它可以快速建立完整的项目文件目录。

2.1 安装 Express Generator


$ npm install express-generator -g

2.2 建立 Express 应用程序


express --view=pug NodeApp

这里 view 参数是用来预设开发中使用的模板引擎的。更多参数如下


express -h

Usage: express [options] [dir]

 Options:

 -h, --help output usage infORMation
 --version output the version number
 -e, --ejs add ejs engine support
 --pug add pug engine support
 --hbs add handlebars engine support
 -H, --hogan add hogan.js engine support
 -v, --view <engine> add view <engine> support (ejs|hbs|hjs|jade|pug|twig|vash) (defaults to jade)
 -c, --CSS <engine> add stylesheet <engine> support (less|stylus|compass|sass) (defaults to plain css)
 --git add .gitignore
 -f, --force force on non-empty directory

2.3 解决模块依赖

进入刚刚建立的 NodeApp 文件夹,可以看到里面有一个 package.JSON 文件,它定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据),npm可以依据它来管理项目模块。

打开 package.json 可以看到里面的内容如下


{
 "name": "NodeApp",
 "version": "0.0.0",
 "private": true,
 "scripts": {
 "start": "node ./bin/www"
 },
 "dependencies": {
 "body-parser": "~1.16.0",
 "cookie-parser": "~1.4.3",
 "debug": "~2.6.0",
 "express": "~4.14.1",
 "morgan": "~1.7.0",
 "pug": "~2.0.0-beta10",
 "serve-favicon": "~2.3.2"
 }
}

现在在终端执行 npm 命令解决模块依赖,npm 会按照 package.json 文件的内容下载相应模块,当然,如果没有设置穿墙措施这一步是无法执行的


npm intsall

3. 初次启动服务器

基本上该有的配置和基本的逻辑代码 Express Generator 都帮我们做好了,那么我们其实已经可以用一行命令启动服务器了。

执行以下命令


npm start

访问 localhost:3000 即可看到 Express 欢迎页面了。

4. 设置访问地址

可以看到在之前建立的文件目录下还有一个 app.js 文件,其实它就充当了一个项目中的main函数的角色,里面使用了很多 Express 中间件和 Express 语法,这里不一一叙述。

在实际生产环境中,我们需要自己设定外部访问端口,比如通过 Http 的 80 端口访问我们的服务器,那么就可以在app.js文件的 "module.exports = app;" 语句前加上如下代码


var server = app.listen(80, "0.0.0.0", function () {
 console.log("服务器IP地址:" + ip.address());
 var host = server.address().address;
 var port = server.address().port;

 console.log("应用已启动,访问地址为 http://%s:%s", host, port)
});

这里简单解释下,80 意味着我们的服务器程序将监听本机的80端口,0.0.0.0 意味着本地和外部访问请求都将由我们的服务器程序进行处理。

同时启动了服务器后我们在终端也可以看到当前主机的IP地址以及服务器程序接受的访问地址。

5. 设置 index 页面内容

到这里为止,我们访问 localhost 地址会看到 Express 默认的欢迎页面,那么如何返回一个我们自己的页面呢。比如我们现在有一个 index.html 页面,我们需要在用户访问 localhost 时返回这个 html 页面,暂时不考虑静态文件的问题。

可以进入 app.js 文件,它现在应该长这样,


var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var index = require('./routes/index');
var users = require('./routes/users');

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', index);
app.use('/users', users);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
 var err = new Error('Not Found');
 err.status = 404;
 next(err);
});

// error handler
app.use(function(err, req, res, next) {
 // set locals, only providing error in development
 res.locals.message = err.message;
 res.locals.error = req.app.get('env') === 'development' ? err : {};

 // render the error page
 res.status(err.status || 500);
 res.render('error');
});

var server = app.listen(80, "0.0.0.0", function () {
 console.log("服务器IP地址:" + ip.address());
 var host = server.address().address;
 var port = server.address().port;

 console.log("应用已启动,访问地址为 http://%s:%s", host, port)
});

module.exports = app;

其中有一句是这样的


app.use('/', index);

它的含义是当服务器程序捕获访问路径为 "/" 的请求时,由 index 中间件进行相应处理。

在这里对于 Express 中间件网上有很好的描述

简单说,中间件(middleware)就是处理 HTTP 请求的函数。它最大的特点就是,一个中间件处理完,再传递给下一个中间件。App 实例在运行过程中,会调用一系列的中间件。 每个中间件可以从 App 实例,接收三个参数,依次为 request 对象(代表 HTTP 请求)、response 对象(代表 HTTP 回应),next 回调函数(代表下一个中间件)。每个中间件都可以对 HTTP 请求(request 对象)进行加工,并且决定是否调用next 方法,将 request 对象再传给下一个中间件。

那么 index 中间件从何而来呢?


var index = require('./routes/index');

所以我们可以去 routes 文件夹下查看 index 文件,它应该长这样


var express = require('express');
var router = express.Router();


router.get('/', function(req, res, next) {
 res.render('index', { title: 'Express' });
});

module.exports = router;

从代码注释可以看出,这里就是负责返回前面提到的 Express 欢迎页面的逻辑代码,当然它使用到了模板引擎的知识,我们不具体介绍,直接简单粗暴地实现我们的需求吧。

首先我们把 index.html 页面保存到文件目录下的 public/html 文件夹下(没有就自己创建),然后我们在 routes/index 文件中返回这个 html 页面,在这里我们将使用到文件读写方法。


var path = require('path');
res.sendFile(path.resolve('public/html/index.html'));

path 变量是 Express 中的变量,path.resolve 方法可以将传入的相对地址转换为绝对地址,这里面涉及到关于 NodeJs 文件路径的知识,不做具体介绍。

res 变量代表着服务器对于此次请求的返回对象,那么在这里相当于我们向客户端返回的是存放在 public/html/index.html 文件。

重启程序,访问 localhost,就可以看到 index.html 了。

6. 设置静态文件路径

对于 JS 和 CSS 这样的静态文件,在 Express 中都统一放置在 public 文件夹下,Express 遇到对静态文件的请求将会从 pulic 下读取并返回相应文件。

而设置这一路径的语句其实也在 app.js 中


app.use(express.static(path.join(__dirname, 'public')));

因此如果项目需要,也可以自行修改这一路经。

7. 后台运行服务器

在之前我们终端运行 npm start 的时候,应该可以看到所有访问打印的日志语句都在终端显示了,这时如果我们关闭终端,程序也将相应停止,那么如何在后台运行我们的服务器程序,并将打印的日志语句都写入到专门的日志文件呢,这里需要用到 linux 的 nohup 命令和重定向符。


npm start 1> log 2> error

> 是linux下的重定向符。> 将会重新写入目标文件,即不保存目标文件的原始内容,如果使用 >> 则会在目标文件后面附加内容。

在 Linux 中,一个程序可以在几个编号的文件流中的任一个上产生输出。然而我们必须把这些文件流的前三个看作标准输入,输出和错误,shell 内部参考它们为文件描述符 0,1 和 2。因此这个语句的意思就是将标准输出重定向到当前目录下的 log 文件中,将错误输出重定向到当前目录下的 error 文件中。

但是这样只解决了输出信息的转移输出问题,程序依然是在终端下运行的。可以使用 Linux 下的 nohup 命令实现这一目的,使用如下


nohup npm start 1> log 2> error &

不要忘记最末位的 & 符号。

在后台运行作业时要当心:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。不过,作业在后台运行一样会将结果输出到屏幕上,干扰你的工作,因此需要重定向符的帮助。

后续

现在一个简单的 Web 服务器就搭建完成了,这只是一个 Web 服务器最开始的一段路,后面的开发则需要对 NodeJs 和 Express 的深入学习和使用。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程网的支持。

--结束END--

本文标题: 教你快速搭建Node.Js服务器的方法教程

本文链接: https://www.lsjlt.com/news/12738.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 教你快速搭建sona服务及idea使用sona的方法
    目录Sonar概述一、 搭建sona服务二、idea配置三、 配置maven的setting.xml文件四、idea中 mvn sonar:sonar 执行命令五 访问sona查看问...
    99+
    2024-04-02
  • 阿里云服务器搭建教程视频一步一步教会你如何快速搭建云服务器
    在信息化时代,云服务器已经成为了许多企业和个人的首选。阿里云作为国内领先的云计算服务提供商,其服务器产品和服务备受青睐。本文将为大家提供一篇详细的阿里云服务器搭建教程视频,包括服务器的购买和安装过程,希望能够帮助大家快速上手,轻松搭建阿里云...
    99+
    2023-11-20
    服务器 阿里 教会
  • 教你快速搭建一个springMVC框架
    这篇文章将为大家详细讲解有关教你快速搭建一个springMVC框架,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、搭建步骤导入jar包、创建项目包结构在web.xml中配置前端控制器编写s...
    99+
    2023-05-31
    springmvc
  • 教你搭建dns服务器(图文教程)
    目录1 环境准备2DNS服务的安装3 配置DNS服务器3.1 配置正向查找域3.2 配置主机和域名3.3 反向查找也配置上4 应用环节5 问题扩展1 环境准备 操作系统:win se...
    99+
    2024-04-02
  • liunx上怎么快速搭建Git服务器(教程 )
    在如今的软件开发行业中,版本控制是一个不可忽视的重要部分。Git是目前最流行的版本控制系统之一。它拥有强大的功能和易于使用的界面,使得许多开发人员选择使用Git进行项目的管理和协作。在本文中,我们将为你提供一份Git服务端的安装教程,以帮助...
    99+
    2023-10-22
  • 教你快速搭建ReactNative开发环境
    React Native 官网地址:https://www.reactnative.cn/docs/environment-setup 开发平台 Windows 目标平台 Andro...
    99+
    2024-04-02
  • 教你如何快速使用miniserve搭建文件服务
    目录启动服务更多功能指定目录指定单个文件投放网页设置用户名和密码随机6位十六进制URL允许上传文件允许创建目录允许手机拍照上传Docker 快速部署命令当我们想自己搭建一个 HTTP...
    99+
    2023-05-15
    miniserve搭建文件服务 miniserve文件服务器
  • 亿速云服务器搭建教程
    首先,需要先了解如何在速云服务器上安装和配置软件,以及如何将软件安装在速云服务器上。 在安装软件之前,您需要创建好速云服务器的目录,包括: sources - installation:在速云服务器上运行安装软件的位置。 system ...
    99+
    2023-10-26
    服务器 教程 亿速云
  • 教你在windows下搭建MQTT服务器的方法
    目录一、下载mosquitto二、配置mosquitto1. 安装路径打开命令行界面2. 设置user及password3. 配置文件检查4. 设置端口5. 订阅者6. 发布者7. ...
    99+
    2024-04-02
  • 云服务器搭建加速器教程
    云服务器搭建加速器可以提供稳定可靠的服务器性能,提高用户访问网站的速度,下面是一些基本的操作方法: 检查网络连接:确保服务器网络连接稳定和快速,可以采用网线连接或者路由器连接,尽量选择稳定的网络连接,以免受到网络中断或服务器故障的影响。...
    99+
    2023-10-26
    加速器 服务器 教程
  • 教你springboot+dubbo快速启动的方法
    目录前言实操测试前言 现在用dubbo的太多了,我到现在还不熟悉,这太不应该了,这次好好看了一下dubbo,终于把基本的启动框架搭好了。dubbo的角色宽泛的分三类provider,...
    99+
    2024-04-02
  • Spring Boot快速搭建Spring框架教程
           Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J...
    99+
    2023-05-31
    spring boot spring框架
  • 私人云服务器搭建方法教程
    私人云服务器搭建方法非常简单,以下是一个简单的步骤: 确定需要使用什么类型的云服务:在决定使用云服务器之前,首先需要明确自己需要使用的是哪种类型的云服务。比如,如果需要使用存储服务,可以考虑使用亚马逊云服务或者Dropbox等公共云服务...
    99+
    2023-10-26
    私人 服务器 方法
  • 手机云服务器搭建方法教程
    首先,需要了解如何配置移动云服务器,可以通过下载安装云服务器软件,可以根据自己的需求自由选择不同的版本,然后按照提示一步步设置完成; 下载并安装云服务器软件,可以使用云服务器的官方安装程序进行安装,也可以通过在线网站进行下载,然后解压缩安...
    99+
    2023-10-26
    服务器 方法 教程
  • 亚马逊服务器搭建方法教程
    安装AWS服务:在您开始使用AWS服务之前,需要先安装AWS服务。可以从AWS官方网站下载AWS客户端和配置文件。 创建虚拟机:在AWS服务器上创建一个虚拟机,并使用AWS提供的AWS Distribution工具将其分配给AWS EC2...
    99+
    2023-10-27
    亚马逊 服务器 方法
  • 云服务器本地搭建方法教程
    在搭建云服务器时,用户需要考虑以下几个方面: 选择合适的云服务器供应商 在选择云服务器供应商时,需要考虑以下因素: 云服务器的稳定性和安全性; 云服务器的价格和服务质量; 云服务器的数据备份和恢复能力。 安装云服务器 在确定好...
    99+
    2023-10-28
    服务器 方法 教程
  • 谷歌云服务器搭建方法教程
    确定您的云服务器:选择一个适合您业务的云服务器,包括处理器、内存、存储、网络等组件,并根据您的需求进行购买。 安装谷歌云服务器:根据您的操作系统和谷歌云服务提供商的文档,下载谷歌云服务器的安装程序和必要的软件包。 配置云服务器:在安装程序...
    99+
    2023-10-27
    服务器 方法 教程
  • 教你怎么用SpringBoot+Mybati-Plus快速搭建代码
    目录前言一、搭建一个springboot项目二、配置依赖三、配置application.yml文件四、启动类五、运行main方法六、项目结构前言 先放一个官网吧,其实本案例就是根据官...
    99+
    2024-04-02
  • IDEA快速搭建jsp项目的图文教程
    推荐教程 idea2021激活 idea2020.3最新激活 idea无限重置 IDEA搭建jsp环境 为了方便在IDEA中集成tomcat环境搭建好WEB的jsp项目 先讲解原理:...
    99+
    2024-04-02
  • 无基础教你快速搭建自己的网站(VPS服务器+宝塔+typecho)
    无基础教你快速搭建自己的网站 一、准备工作二、登录服务器安装宝塔面板三、宝塔面板环境搭建及站点设置四、搭建Typecho环境五、开启CDN防护 一、准备工作 首先我们要准备好一个服务器,...
    99+
    2023-10-18
    服务器 运维 前端 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作