nodejs基础应用

时间:2021-05-26

一、第一个nodejs应用

n1_hello.js

console.log('hello word!');

在命令行cmd中执行该文件(在该文件处打开命令行):

node n1_hello.js

在命令行cmd返回结果:

hello word!

二、nodejs基本格式

//步骤一:引入require模块,require指令载入http模块var http = require('http');//步骤二:创建服务器http.createServer(function (request, response) { // 发送 HTTP 头部 // HTTP 状态值: 200 : OK // 内容类型: text/html response.writeHead(200, {'Content-Type': 'text/html;chaset=utf-8;'});//步骤三:接受请求与响应请求 if(request.url!=='/favicon.ico'){ ...... // 发送响应数据 response.end('');//必须有,没有则没有协议尾 }}).listen(8000);// 终端打印如下信息console.log('Server running at http://127.0.0.1:8000/');

三、nodejs调用函数

-----------------调用本地函数-----------------------------

var http = require('http');http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/html;chaset=utf-8;'}); if(request.url!=='/favicon.ico'){ fun1(response); // 发送响应数据 response.end(''); }}).listen(8000);// 终端打印如下信息console.log('Server running at http://127.0.0.1:8000/');function fun1(res){ console.log('fun1'); res.write('hello,我是fun1');}

-----------------调用外部函数-----------------------------

注意:外部函数必须写在module.exports中,exports 是模块公开的接口

------------(1)仅调用一个函数-----------

主程序中:

var http = require('http');var otherfun = require("./models/otherfuns.js");//调用外部页面的fun2http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/html;chaset=utf-8;'}); if(request.url!=='/favicon.ico'){ otherfun(response);//支持一个函数时 response.end(''); }}).listen(8000);// 终端打印如下信息console.log('Server running at http://127.0.0.1:8000/');

otherfuns.js中

function fun2(res){ console.log('fun2'); res.write('你好!,我是fun2');}module.exports = fun2;//只支持一个函数

------------(2)调用多个函数-----------

主程序中:

var http = require('http');var otherfun = require("./models/otherfuns.js");//调用写函数的外部页面otherfuns.jshttp.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/html;chaset=utf-8;'}); if(request.url!=='/favicon.ico'){ //todo 以对象.方法名调用 otherfun.fun2(response); otherfun.fun3(response); //todo 以字符串调用对应函数(结果同上) //otherfun['fun2'](response); //otherfun['fun3'](response); response.end(''); }}).listen(8000);// 终端打印如下信息console.log('Server running at http://127.0.0.1:8000/');}

otherfuns.js中

module.exports={ fun2:function(res){//匿名函数 console.log('fun2'); res.write('你好!,我是fun2');//在页面中输出 }, fun3:function(res){ console.log('fun3'); res.write('你好!,我是fun3'); }, ......}

四、nodejs路由初步

主程序n4_rout.js:

var http = require('http');//引入url模块var url = require('url');http.createServer(function (request, response) { response.writeHead(200, {'Content-Type': 'text/html;chaset=utf-8;'}); if(request.url!=='/favicon.ico'){ var pathname = url.parse(request.url).pathname; pathname=pathname.replace(/\//,'');//替换掉前面的/ console.log(pathname); response.end(''); }}).listen(8000);// 终端打印如下信息console.log('Server running at http://127.0.0.1:8000/');

在命令行cmd中执行该文件,在访问:http://localhost:8000/,在此输入路由地址,如下图,并观察命令行。

五、nodejs读取文件

主程序:

var http = require('http');var optfile=require('./models/optfile');//导入文件http.createServer(function (request, response) { // 发送 HTTP 头部 // HTTP 状态值: 200 : OK // 内容类型: text/html response.writeHead(200, {'Content-Type': 'text/html;chaset=utf-8;'}); if(request.url!=='/favicon.ico'){//清除第2次访问 optfile.readfileSync('./views/login.html');//同步调用读取文件readfileSync()方法 //optfile.readfile('./views/login.html',response);//异步步调用读取文件readfile()方法 response.end('ok!!!!!');//todo 不写没有协议尾 console.log('主程序执行完毕!'); }}).listen(8000);// 终端打印如下信息console.log('Server running at http://127.0.0.1:8000/');

optfile.js中:

var fs=require('fs');//Node 导入文件系统模块(fs)语法 导入fs操作文件的类module.exports={ readfileSync:function(path){ // 同步读取 var data = fs.readFileSync(path,'utf-8');//以中文读取同步文件路径path console.log("同步方法执行完毕。"); }, readfile:function(path){ // 异步读取 fs.readFile(path,function (err, data) { if (err) { console.error(err); }else{ console.log("异步读取: " + data.toString()); } }); console.log("异步方法执行完毕。"); },}

结果:命令行cmd中

(1)同步读取文件时:

(2)异步读取文件时:(常用)

网页中:均为:

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章