Node 研究体会

xiaoxiao2021-02-28  6

1、node安装,去官网下载安装包即可。

2、简单测试。在磁盘某个目录下(例如:D:\nodejs)新建一个JavaScript文件,即后缀为.js的文件,复制下来代码,在浏览器中输入http://127.0.0.1:8888/即可看到执行情况。

     注意,同一目录下新建input.txt文件用来读取文件数据。

var fs = require("fs"); var data = fs.readFileSync('input.txt'); console.log(data.toString()); console.log("程序执行结束!"); fs.readFile('input.txt', function (err, data) {     if (err) return console.error(err);     console.log(data.toString()); }); console.log("程序执行结束!"); var http = require('http'); http.createServer(function (request, response) {     // 发送 HTTP 头部      // HTTP 状态值: 200 : OK     // 内容类型: text/plain     response.writeHead(200, {'Content-Type': 'text/plain'});     // 发送响应数据 "Hello World"     response.end('Hello World\n'); }).listen(8888); // 终端打印如下信息 console.log('Server running at http://127.0.0.1:8888/');

3、在项目目录下使用npm  init命令初始化package.json.

4、在该项目中安装node的模块,“npm install xxx”会将xxx模块安装到当前路径下,“npm install -g xxx”则将xxx模块安装到当前用户的全局位置。使用“npm helo install”可以查看install子命令的细节。要卸载一个模块,使用“npm uninstall xxx”,假如你是全局安装,则使用“npm uninstall -g xxx”。 在使用npm安装某个模块时,它会自动解决依赖。

  注意:安装全局的模块需要配置环境变量才能使用。即-g命令全局安装Node.js模块后,需要设置环境变量NODE_PATH,否则在我们使用node命令启动某个应用时可能会报找不到指定的模块这种错误。要在NODE_PATH中添加多个模块路径,只需用“;”分隔开即可。

5、安装mime模块,加载html页面的不同类型文件(css,js)相应。npm install mime

6、安装ejs模块,使用模版,进行页面动态响应。npm install ejs

7、实例,读取本地html文件响应,代码如下,读取图片不需要转字符串。

var http = require('http'); var fs = require('fs'); var url = require('url'); var path = require('path'); var mime=require('mime'); var ejs = require('ejs'); http.createServer(function (request, response) {    // 解析请求,包括文件名    var pathname = url.parse(request.url).pathname;     //输出请求的文件名     //从文件系统中读取请求的文件内容     fs.readFile(pathname.substr(1), function (err, data) { if (err) {  // HTTP 状态码: 404 : NOT FOUND Content Type: text/plain  response.writeHead(404, {'Content-Type': 'text/html'}); //  发送响应数据 response.end("NOT FOUND Content");  }else{ var fileTmpMime=path.basename(pathname);    var resMime=mime.getType(fileTmpMime);   response.writeHead(200,{"Content-Type":resMime});  //发送响应数据  if(resMime.indexOf("image") >= 0){ response.end(data); }else if(resMime.indexOf("/html") >= 0){     var context = {name:'李建成'};  

    //替换模版中的内容,返回替换后的html字符串    var tmpHtml=ejs.render(data.toString(), context); 

                            //使用替换后的html内容响应请求。    response.end(tmpHtml);  }else{    response.end(data.toString());  }     }); }).listen(8888);

8、安装express 模块,npm install express

9、测试实例代码

// 引入 express 模块 var express = require('express'); // 创建 express 实例 var app = express();

// 响应HTTP的GET方法 app.get('/', function (request, response) {   response.send('Hello World 李建成!'); }); // 监听到8000端口 app.listen(8888, function () {   console.log('Hello World is listening at port 8888'); });

转载请注明原文地址: https://www.6miu.com/read-1150302.html

最新回复(0)