在腾讯云(windows)上搭建node.js服务器

1:安装Node.js

使用MSI文件,并按照提示安装node.js,默认情况下,安装程序将 Node.js 发行到 C:Program Files odejs. 但这里我们需要修改安装路径到:D:yiibai_worksp odejs,并将 D:yiibai_worksp odejs 目录添加到Window系统的PATH环境变量中。重新启动打开命令提示符,以使更改生效。

第一步:双击下载的  “node-v0.12.7-x64.msi" 文件,出现提示安装界面:

第二步:选择安装目录,这里安装在目录 D:yiibai_worksp odejs 中,如下图:

第三步:选择安装的模块和功能,这里全部安装,并添加到系统环境变量,如下图所示:

最后一步:安装完成!

验证安装:执行文件

创建一个js文件名为test.js 在 D:>yiibai_worksp odejs.

File: test.js

console.log("Hello World")

现在运行test.js看到的结果:

D:yiibai_worksp
odejs> 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或http://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 + '
');
 49         // 所有的请求头
 50         for (var h in request.headers) {
 51             response.write(h + ':' + request.headers[h] + '
');
 52         }
 53         response.write('
');// 使用额外的空白行来结束头
 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 }

③域名解析和IP绑定---腾讯云好像会自己绑好,但是域名实名认证后才可以生效。我这个认证了半个月- -

④以上步骤做完之后服务器就搭建完成了,监视的端口是8000,比如你的域名是www.hehe.com,那么你需要访问www.hehe.com:8000就可以访问到自己的内容了

原文地址:https://www.cnblogs.com/cndotabestdota/p/5694629.html