Node.js教程之在腾讯云(windows)上搭建Node.js服务器
沉沙 2019-05-15 来源 : 阅读 1895 评论 0

摘要:本篇文章探讨了Node.js教程之在腾讯云(windows)上搭建Node.js服务器,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇文章探讨了Node.js教程之在腾讯云(windows)上搭建Node.js服务器,希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

Node.js教程之在腾讯云(windows)上搭建Node.js服务器

<

 1:安装Node.js
使用MSI文件,并按照提示安装node.js,默认情况下,安装程序将 Node.js 发行到 C:\Program Files\nodejs. 但这里我们需要修改安装路径到:D:\yiibai_worksp\nodejs,并将 D:\yiibai_worksp\nodejs 目录添加到Window系统的PATH环境变量中。重新启动打开命令提示符,以使更改生效。
第一步:双击下载的  “node-v0.12.7-x64.msi" 文件,出现提示安装界面:
第二步:选择安装目录,这里安装在目录 D:\yiibai_worksp\nodejs 中,如下图:
第三步:选择安装的模块和功能,这里全部安装,并添加到系统环境变量,如下图所示:
最后一步:安装完成!
验证安装:执行文件
创建一个js文件名为test.js 在 D:\>yiibai_worksp\nodejs.
File: test.js
console.log("Hello World")
现在运行test.js看到的结果:
D:\yiibai_worksp\nodejs> node test.js
验证输出结果:
[小贴士]①:腾讯云系统默认文件后缀名是隐藏的,导致test.js可能实际上是test.js.txt;注意改掉,很关键!
    ②一些基本的Shell操作:1:cd..回退 2:cd hehe进入文件夹 3:node xx.js 启动文件
 
②搭建HTTP服务
下面是个http.js文件,node这个文件就可以启动监听
  1 // 这是一个简单的Node HTTP服务器,能处理当前目录的文件
  2 // 并能实现两种特殊的URL用于测试
  3 // 用HTTP://localhost:8000或//127.0.0.1:8000连接这个服务器
  4
  5 // 首先加载所有需要用到的模块
  6 var http = require(‘http‘);        // Http服务器API
  7 var fs = require(‘fs‘);            // 用于处理本地文件
  8 var server = new http.Server();    // 创建新的HTTP服务器
  9 server.listen(8000);            // 监听端口8000
 10
 11 // 使用on方法注册时间处理
 12 server.on(‘request‘, function(request, response) { // 当有request请求的时候触发处理函数
 13     console.log(‘request‘);
 14     // 解析请求的URL
 15     var url = require(‘url‘).parse(request.url);
 16     // 特殊URL会让服务器在发送响应前先等待
 17     switch(url.pathname) {   
 18     case ‘‘||‘/‘ : // 模拟欢迎页,nodejs是高效流处理的方案,也可以通过配置文件来配置
 19         fs.readFile(‘./index.html‘, function(err, content){
 20             if(err) {
 21                 response.writeHead(404, { ‘Content-Type‘:‘text/plain; charset="UTF-8"‘ });
 22                 response.write(err.message);
 23                 response.end();
 24             } else {
 25                 response.writeHead(200, { ‘Content-Type‘ : ‘text/html; charset=UTF-8‘ });
 26                 response.write(content);
 27                 response.end();
 28             }
 29         });
 30         break;
 31     case ‘/test/delay‘:// 此处用于模拟缓慢的网络连接
 32         // 使用查询字符串来获取延迟时长,或者2000毫秒
 33         var delay = parseInt(url.query) || 2000;
 34         // 设置响应状态和头
 35         response.writeHead(200, {‘Content-type‘:‘text/plain; charset=UTF-8‘});
 36         // 立即开始编写响应主体
 37         response.write(‘Sleeping for‘ + delay + ‘ milliseconds...‘);
 38         // 在之后调用的另一个函数中完成响应
 39         setTimeout(function(){
 40             response.write(‘done.‘);
 41             response.end();
 42         }, delay);
 43         break;
 44     case ‘/test/mirror‘:// 如果请求是test/mirror,则原文返回它
 45         // 响应状态和头
 46         response.writeHead(200, {‘Content-type‘:‘text/plain; charset=UTF-8‘});
 47         // 用请求的内容开始编写响应主体
 48         response.write(request.mothod + ‘ ‘ + request.url + ‘ HTTP/‘ + request.httpVersion + ‘\r\n‘);
 49         // 所有的请求头
 50         for (var h in request.headers) {
 51             response.write(h + ‘:‘ + request.headers[h] + ‘\r\n‘);
 52         }
 53         response.write(‘\r\n‘);// 使用额外的空白行来结束头
 54         // 在这些事件处理程序函数中完成响应
 55         // 当请求主体的数据块完成时,把其写入响应中
 56         request.on(‘data‘, function(chunk) { response.write(chunk); });
 57         // 当请求结束时,响应也完成
 58         request.on(‘end‘, function(chunk){ response.end(); });
 59         break;
 60     case ‘/json‘ : // 模拟JSON数据返回
 61         // 响应状态和头
 62         response.writeHead(200, {‘Content-type‘:‘application/json; charset=UTF-8‘});
 63         response.write(JSON.stringify({test:‘success‘}));
 64         response.end();
 65         break;
 66     default:// 处理来自本地目录的文件
 67         var filename = url.pathname.substring(1);    // 去掉前导‘/‘
 68         var type = getType(filename.substring(filename.lastIndexOf(‘.‘)+1));
 69         // 异步读取文件,并将内容作为单独的数据模块传给回调函数
 70         // 对于确实很大的文件,使用流API fs.createReadStream()更好
 71         fs.readFile(filename, function(err, content){
 72             if(err) {
 73                 response.writeHead(404, { ‘Content-Type‘:‘text/plain; charset="UTF-8"‘ });
 74                 response.write(err.message);
 75                 response.end();
 76             } else {
 77                 response.writeHead(200, { ‘Content-Type‘ : type });
 78                 response.write(content);
 79                 response.end();
 80             }
 81         });
 82         break;
 83     }
 84    
 85 });
 86 function getType(endTag){
 87     var type=null;
 88     switch(endTag){
 89     case ‘html‘ :
 90     case ‘htm‘ :
 91         type = ‘text/html; charset=UTF-8‘;
 92         break;
 93     case ‘js‘ :
 94         type = ‘application/javascript; charset="UTF-8"‘;
 95         break;
 96     case ‘css‘ :
 97         type = ‘text/css; charset="UTF-8"‘;
 98         break;
 99     case ‘txt‘ :
100         type = ‘text/plain; charset="UTF-8"‘;
101         break;
102     case ‘manifest‘ :
103         type = ‘text/cache-manifest; charset="UTF-8"‘;
104         break;
105     default :
106         type = ‘application/octet-stream‘;
107         break;
108     }
109     return type;
110 }
   

      本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程