Nodejs搭建web服务器

Node搭建本地服务

根据demo文件夹位置,右键启动命令窗口(shift+右键---在此处打开命令窗口),需是server.js文件夹路径,在命令行node server启动服务

检测node版本及npm版本

命令行输入:node -v

命令行输入:npm -v

创建服务器,以及对应css和js文件的引入和判断(不加判断,会导致css/js不生效)

对css和js文件进行过滤,否则会导致‘Resource interpreted as Stylesheet but transferred with MIME type text/html’

文件夹新建server.js文件(启动服务用的,监听服务),代码如下:

var http=require(\'http\');
var fs = require(\'fs\');
var url = require(\'url\');
//创建服务器
http.createServer(function(request,response) {
  //解析请求,包括文件名
  var pathname= url.parse(request.url).pathname;
  //输出请求的文件名
  console.log("Request for "+ pathname + "  received.");
//获取后缀,判断是js还是css文件,如果目录结构不同,此处需要修改
  var firstDir = pathname && pathname.split(\'/\')[1];
  var ContentType = {\'Content-Type\': \'text/html\'};

  // js - application/x-javascript
  if (firstDir && firstDir === \'css\') {
    ContentType = {\'Content-Type\': \'text/css\'};
  } 
  if (firstDir && firstDir === \'js\') {
    ContentType = {\'Content-Type\': \'application/x-javascript\'}
  }

  //从文件系统中去请求的文件内容
  fs.readFile(pathname.substr(1),function(err, data) {
    if(err) {
      console.log(err);
      //HTTP 状态码 404 : NOT FOUND
      //Content Type:text/plain
      response.writeHead(404, {\'Content-Type\': \'text/html\'});
    }
    else {
      //HTTP 状态码 200 : OK
      //Content Type:text/plain
      response.writeHead(200, ContentType);

      //写会回相应内容
      response.write(data.toString());
    }
    //发送响应数据
    response.end();
  });
}).listen(8080);

console.log(\'Server running at http://127.0.0.1:8080/\');    

如此,OK