linux怎样用node编辑内容,Linux系统编写Node.js应用

欢迎,来自IP地址为:60.168.24.16 的朋友

93093d40f2496026387a1f80caacd031.png

近些年来,网络应用开发出现了新的趋势,作为网络应用的开发人员,要时刻留意技术的演进。JavaScript语言是目前网络应用开发的发展方向,无疑也是网络开发中最为流行的实现技术。

基于JavaScript的web框架逐渐成为最为吸引人解决方案,能够显著提升开发效率,以最小的成本开发高安全性的网络应用。如果对网络应用有所关注,那么对于Node JavaScript(也就是Node.js或都简写为Node)多多少少都所耳闻。

本文将介绍如何在Linux系统中使用Node.js开发JavaSrcipt网络应用,在这之前,我们首先了解一下什么是Node.js.

什么是Node.js

Node.js是一种采用Chrome’s V8 JavaScript引擎开发的开源、轻量级高效的JavaScript实时运行环境。Node.js被设计成无线程模式(采用单线程),使用Python的网络引擎和Rubby的事件处理库。

事件驱动模型是Node.js的核心,作为Node.js的开发人员,要时刻了解会出现何种事件以及如何响应它们。

为什么Node.js很重要

Node.js十分强大也十分重要,主要有以下几种原因:

它使用异步事件驱动的非阻塞I/O执行模型,这提高了应用程序的吞吐量,并且支持真实Web应用程序的可伸缩性

它是单线程的,所以它在任一时刻只会使用一个CPU资源

每个Node.js应用都是一个完全意义上的web服务器,就像Apache或者Nginx一样

它使用child_process.fork() API来提供线程支持,用于创建子进程,并且提供集群模块

通过以上的介绍,你或许已经跃跃欲试想编写一个JavaScript应用了,但是首先需要搭建一个Node.js运行环境。其中包括Node.js以及NPM。搭建教程在>>这里<<

如何在Linux系统创建Node.js应用

Node.js一旦安装成功,就可以编写Java Script网络应用了。首先,需要创建一个存放应用文件的目录:

# mkdir -p /var/www/myapp

然后,进入这个新创建的目录,使用NPM工具我们的网络应用创建一个package.json文件,这个文件是一个关于此网络应用的小帮助文档,里面记录了应用名称、作者以及依赖文件等基本信息。

# cd /var/www/myapp

# npm init

在这一步中,系统会请求用户回答一些问题来完成”package.json”文件的内容,关于这些问题的详细解释如下:

package name – 应用名称

version – 应用版本

description – 应用的简短说明

entry point – 设置默认执行的文件,相当于HTML网站的默认页面

test command – 用于创建测试脚本 (默认为空)

git repository – 指定一个Git软件库,如果不需要则为空即可

keywords – 设置关键字,用于在npm中查找本应用

author – 应用作者

license – 设置本应用的许可

完整示例过程如下图所示:

9cdb66339cbf5145f27c90193f8dda94.png

如上图所示,我们设置了应用的默认执行文件为”index.js”,那么接下来就需要创建这个文件来启动应用。

创建”index.js”文件,并将如下内容添加至文件:

var http = require('http');

http.createServer(function(req,res){

res.writeHead(200, { 'Content-Type': 'text/plain' });

res.end('Hello World!');

}).listen(8008);

console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');

可以看到,文件使用的语言完全为Java Script,这对于开发网络应用来说极大的提升了便利性。

下面要做的就是使用如下命令测试Node.js服务器是否正常工作,可以启动我们添加的应用:

# node index.js

如果见到如下图所示信息,请表示应用已经成功启动:

88f39e6276e44a27fe9111210b587f72.png

现在要做的就是打开浏览器访问Node.js主机的8008端口,看是否会显示”Hello World!”信息。如果看到下图所示内容,就表示我们的web应用可以正常启动了。

faa23d8f74d5d96e766a8220f5dc55cb.png

我们之前的代码主要是使用HTTP模块来响应HTTP请求,而这个HTTP模块就是一个标准的Node.js内建模块。

Node.js HTTP模块

在Node.js中,模块与Java Script的类库十分类似,它们可以被我们的应用所引用来完成特定的功能。在Node.js应用中,我们既可以使用内建模块,又可以使用第三方模块,甚至可以使用自己创建的模块。

为了调用模块,可以使用”require”函数来完成:

var http = require('http');

一旦http模块被引入,它就可以完成创建服务器并侦听特定端口的功能(本例使用8008)。http.creatServer方法会以同用户相关的请求和响应作为参数来创建http服务器:

http.createServer(function(req,res){

res.writeHead(200, { 'Content-Type': 'text/plain' });

res.end('Hello World!');

}).listen(8008);

这个createServer方法有两个参数,其中req表示用于接收客户端的请求,而res表示返回给客户端的响应结果。

代码的最后一句是用于向命令行终端回显信息,作为Node.js对服务器本身的输出内容:

console.log('Server started on localhost:8080; press Ctrl-C to terminate...!');

Node.js中的路由

路由在Node.js是一个十分重要的概念,这与网络技术中为数据包找寻到达目的地路径类似。Node.js中的路由是一种处理客户端请求的技术,用于将不同内容的请求用不同的URL地址区分开来。我们可以利用如下代码,来查看客户端请求的内容:

var http = require('http');

http.createServer(function(req,res){

res.writeHead(200, { 'Content-Type': 'text/plain' });

res.write(req.url);

res.end();

}).listen(8008);

console.log('Server started on localhost:8008; press Ctrl-C to terminate...!');

现在,我们通过浏览器访问不同的内容,例如如下例子:

http://192.168.235:8008

http://192.168.1.235:8008/about

http://192.168.1.235:8008/daehub/authors

4936a8b7a25e10247e7087e75f2b2ac5.png

现在,我们就可以根据不同的请求内容,响应不同的内容:

//include http module

var http = require('http');

http.createServer(function(req,res){

//store URL in variable q_string

var q_string = req.url;

switch(q_string) {

case '/':

res.writeHead(200, { 'Content-Type': 'text/plain' });

res.write('Welcome To Daehub.com!')

res.end();

break;

case '/about':

res.writeHead(200, { 'Content-Type': 'text/plain' });

res.write('About Us');

res.write('\n\n');

res.write('Daehub.com - The whizz center');

res.write('\n');

res.end('Find out more: https://www.daehub.com');

break;

case '/daehub/authors':

res.writeHead(200, { 'Content-Type': 'text/plain' });

res.write('Daehub Authors');

res.write('\n\n');

res.end('Find all our authors here: https://www.daehub.com');

break;

default:

res.writeHead(404, { 'Content-Type': 'text/plain' });

res.end('Not Found');

break;

}

}).listen(8008);

console.log('Server started on localhost:8008; press Ctrl-C to terminate....');

可以看到,Node.js可以根据不同的客户端请求,做出与之对应的响应了,这就是所谓的路由,看起来是不是很容易呢。

26326fdcdbed0bd11df9a1e746a3c26b.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值