怎样用Node.js快速搭建服务器

怎样用Node.js快速搭建服务器,第1张

如果电脑没有安装nodejs的同学可以先到node官方下载并安装好node程序。

安装好nodejs后验证一下是否安装成功!如果出现则表明node已经承装安装上去了!

安装好node之后打开cmd 输入 npm install anywhere -g 安装anywhere ,然后等待直到出现以下界面。

然后浏览器就自动打开本地访问网址,一个简单的node服务器就这样被我们搭建好啦!

到小鸟云购买云服务器

作为一个穷逼+不熟悉服务器配置的菜鸟。选了最便宜的套餐: CPU: 1核 / 内存: 1024 MB / 带宽:1Mbps / 操作系统: CentOS

70 购买环节会设置 ssh 登陆密码,记下密码。 登陆到小鸟云,查看购买的实例。 注意公网 IP,下一步会用到

2 登陆服务器 sudo ssh 你的服务器ip地址

提示输入mac的密码,提示输入服务器密码。 输入后连接成功并显示服务器信息,如下:

登陆服务器后。这里对于我这个 Linux 菜鸟有个大坑………就是 Linux 系统常见的目录结构和文件放置区域。 使用 root

用户身份登陆后,会直接进入到下图 红色箭头标出的 root 目录下。先 cd 跳转到上一层, 再 ls -a

,就可以看到类似下图的目录结构了。

3安装 node 和 mongodb

node – 编译后二进制文件应在/usr/local/bin/node 下 mongodb –安装在/usr/local/mongodb 下

下面就一步一步来,首先升级CentOS

yum -y update1

升级后,跳转到 /usr/local/src , 这个文件夹通常用来存放软件源代码

cd /usr/local/src1

下载 nodejs 代码,也可以使用scp命令直接上传,因为下载实在太慢了。

wget http://nodejsorg/dist/v0125/node-v0125targz//注根据最新版本号为准12

解压

tar -xzvf node-v0125targz1

进入解压后的文件夹

cd node-v01251

执行配置脚本来进行编译预处理

/configure1

编译源代码

make//注这个时间可能会很久12

当编译完成后,需要使之在系统范围内可用,

编译后的二进制文件将被放置到系统路径,默认情况下,Node二进制文件应该放在/user/local/bin/node文件夹下

make install1

安装 express 和 forever,这两个模块都推荐 global 安装

npm -g install express forever1

建立超级链接, 不然 sudo node 时会报 “command not found”

sudo ln -s /usr/local/bin/node /usr/bin/nodesudo ln -s /usr/local/lib/node

/usr/lib/nodesudo ln -s /usr/local/bin/npm /usr/bin/npmsudo ln -s

/usr/local/bin/node-waf /usr/bin/node-wafsudo ln -s /usr/local/bin/forever

/usr/bin/forever12345

Nodejs到这里就基本安装完成了。

下面来安装mongodb

软件安装位置:/usr/local/mongodb 数据存放位置:/var/mongodb/data

日志存放位置:/var/mongodb/logs

首先下载安装包

cd /usr/localwget

http://fastdlmongodborg/linux/mongodb-linux-x86_64-249tgz12

解压安装包,重命名文件夹为mongodb

tar zxvf mongodb-linux-x86_64-260tgzmv mongodb-linux-x86_64-260

mongodb12

创建数据和日志存放目录

mkdir /var/mongodbmkdir /var/mongodb/datamkdir /var/mongodb/logs123

打开rclocal文件,添加CentOS开机启动项:

vim /etc/rcd/rclocal1

将mongodb启动命令追加到本文件中,让mongodb开机自启动:

/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath

/var/mongodb/logs/loglog -fork12

关闭 vim 后,直接手动启动mongodb

/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath

/var/mongodb/logs/loglog -fork12

看到类似的信息,说明已启动成功。我在这里发了个傻,以为26308是port号,导致后面设置port时折腾了好久。其实这里的 forked

process 和 port 号是两个东西, 这个是程序本身在Server上的进程。

forked process: 263081

启动mongo shell

cd /usr/local/mongodb/bin//mongo12

在 mongo shell 中创建管理员及数据库

use admin //admin 数据库dbcreateUser({user:

"用户名",pwd:"登陆密码",roles:["userAdminAnyDatabase"]

//超级管理员})use databaseFoo //nodeapp 要连接的数据库dbcreateUser({user:

"用户名",pwd:"登陆密码",roles:["readWrite"]

//读写权限})12345678910111213

到这里 mongodb 基本已经安装设置完成了。具体数据的迁移导入可自行研究。

4配置及启动node app

我们把 nodeapp 的程序放在 /home 下

解决跨域的方法有:JSONP方式解决跨域、CORS方式解决跨域、搭建Node代理服务器解决跨域、Nginx反向代理解决跨域、postMessage方式解决跨域、Websocket方式解决跨域等。

1、JSONP方式解决跨域

jsonp的原理就是利用了script标签不受浏览器同源策略的限制,然后和后端一起配合来解决跨域问题的。

2、CORS方式解决跨域

cors是跨域资源共享,是一种基于HTTP头的机制,该机制通过允许服务器标示除了它自己以外的其他origin(域,协议和端口),使得浏览器允许这些origin访问加载自己的资源。服务端设置了Access-Control-Allow-Origin就开启了CORS,所以这种方式只要后端实现了CORS,就解决跨域问题,前端不需要配置。

3、搭建Node代理服务器解决跨域

因为同源策略是浏览器限制的,所以服务端请求服务器是不受浏览器同源策略的限制的,因此可以搭建一个node服务器来代理访问服务器。

4、Nginx反向代理解决跨域

nginx通过反向代理解决跨域也是利用了服务器请求服务器不受浏览器同源策略的限制实现的。客户端请求nginx服务器,在nginxconf配置文件中配置server监听客户端的请求,然后把location匹配的路径代理到真实的服务器,服务器处理请求后返回数据,nginx再把数据给客户端返回。

5、postMessage方式解决跨域

windowpostMessage()方法可以安全地实现跨源通信,此方法一种受控机制来规避此限制,只要正确的使用,这种方法就很安全。

6、Websocket方式解决跨域

使用Websocket也可以解决跨域问题,因为WebSocket本身不存在跨域问题,所以我们可以利用webSocket来进行非同源之间的通信,WebSocket规范定义了一个在Web浏览器和服务器之间建立“套接字”连接的API。简单来说:客户端和服务器之间存在持久连接,双方可以随时开始发送数据。

1安装nodejs服务(从官网下载安装),node相当于apache服务器

2在自己定义的目录下新建服务器文件如 serverjs

例如,我在E:\PhpProject\html5\websocket下创建了serverjs文件

var http = require('http');//引入http模块

//开启服务,监听8888端口

//端口号最好为6000以上

var server = httpcreateServer(function(req,res){

consolelog('有客户端连接');//创建连接成功显示在后台

这个web服务器包括三块,appjs是程序入口,负责响应url请求;routejs是路由,用来分发处理复杂的业务逻辑;systemjs是配置文件,用来配置服务器参数,如host、port等

首先来看appjs,引用模块,http处理url请求,url用来解析请求参数和路径,path只是用来匹配路径的扩展名o(╯□╰)o,fs用来读取本地静态文件,剩下两个模块后面详解。

接下来正式创建服务器处理请求,请求大致分两类,一类是静态文件,如xxxhtml、xxxjs等等,另一类是进行业务处理,如常见的增删查改操作,这一部分操作交给路由处理,这里用了一个简单的判断逻辑:通过后缀名,后缀名在systemjs中配置。

读取本地文件的时候要注意一点,那就是缓存。如果客户端发出重复请求,服务器需要判断文件自上次请求后是否发生了修改,如果未修改返回304,这样可以加快浏览器端的响应速度。这里的判断方式是通过判断请求的header的if-modified-since时间和本地文件修改时间是否一致,如果一致则返回304,否则重置该时间,

如果需要进行业务处理,则交给路由处理了。首先路由引入具体的业务逻辑模块,然后通过解析具体的路径名来执行具体的业务逻辑,这里注意的是:由于nodejs的并发特性,记得传入回调函数来获得相应的处理结果。

1Nodejs安装包及源码下载地址为:https://nodejsorg/en/download/

Git下载地址为:https://git-scmcom/download/win。

2按照安装提示操作即可,选择安装路径、npm。

3环境变量默认C:\Users\Administrator\AppData\Roaming\npm\node_modules。

创建新的变量

创建方法:我的电脑>属性》高级系统设置》环境变量》,创建名NODE_PATH,值为nodejs的当前安装目录。

命令行工具是运行在当前计算机用户下的,所以开头总是C:/Users/XXX/Desktop>,而不会跟你的nodejs安装的位置有关。

安装node后,在cmd里有两种模式,开发模式和命令行模式,要进入开发模式直接输入node回车即可,此时可以输入代码,比如require ("express"),如果直接在命令行模式下输入require类的语句是会报错的,提示'require'不是内部或外部命令,也不是可运行的程序或批处理文件。从开发模式退出可用exit命令也可以用快捷捷,ctrl+D或两次ctrl+C

4创建应用

我们先创建一个项目目录,目录可自己定义,本案例的目录为 e:/node/serve。

由于我们要搭建的是服务器,所以我把第一个文件命名为serverjs。

在serverjs里面输入以下代码:

const http = require('http');//实例化“http”

const hostname = '127001';

const port = 3000;

const server = httpcreateServer((req, res) => {

resstatusCode = 200; //状态值200:OK

ressetHeader('Content-Type', 'text/plain'); //内容类型:text/plain

resend('Hello World\n'); //响应结果“hello world”

});

serverlisten(port, hostname, () => {  //实现监听

consolelog(`Server running at http://${hostname}:${port}/`);

});

5应用执行

打开git命令行,输入cd e:/node/serve/

之后输入node servicejs

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 怎样用Node.js快速搭建服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情