nodejs的函数调用,主要有三种方式:
1.调用本地函数
var http = require('http');
http.createServer(function(request,response){
response.writeHead(200,{'Content-Type':'text/html;charset= utf-8'})
if(request.url!=="/favicon.ico"){//清除第二次访问
console.log("visited");
response.write('hello,world\r\n');
func1(response);
response.end();//不写没有协议尾,写了会产生两次访问
}
}).listen(8000);
console.log('server running at http://127.0.0.1:8000/');
function func1(res){
console.log('func1');
res.write('this is func1\r\n');
}
2.调用外部函数
文件helloworld.js
var http = require('http');
var otherfunc = require("./n1_func2.js");//单一函数已经被舍弃
http.createServer(function(request,response){
response.writeHead(200,{'Content-Type':'text/html;charset= utf-8'})
if(request.url!=="/favicon.ico"){//清除第二次访问
console.log("server has been visited");
response.write('hello,world\r\n');
func1(response);
otherfunc(response);
//func2(response);写法错误,只能使用别名
//otherfunc.func2(response);写法错误,只能使用别名
response.end();//不写没有协议尾,写了会产生两次访问
}
}).listen(8000);
console.log('server running at http://127.0.0.1:8000/');
function func1(res){
console.log('func1 called');
res.write('this is func1\r\n');
}
外部function函数文件n1_func2.js:
function func2(res){
console.log('func2');
res.write('this is func2\r\n');
}
//使用module.exports,允许其他文件调用func2
module.exports = func2;
3.使用字符串调用多个外部函数
文件helloworld.js:
var http = require('http');
var otherfunc = require("./n1_func2.js");//单一函数已经被舍弃
var morefunc = require('./n1_module_more_funcs.js')
http.createServer(function(request,response){
response.writeHead(200,{'Content-Type':'text/html;charset= utf-8'})
if(request.url!=="/favicon.ico"){//清除第二次访问
console.log("visited");
response.write('hello,world\r\n');
func1(response);
otherfunc(response);
//func2(response);写法错误,只能使用别名
//otherfunc.func2(response);写法错误,只能使用别名
morefunc.func3(response);
morefunc['func4'](response);//使用字符串调用函数
response.end();//不写没有协议尾,写了会产生两次访问
}
}).listen(8000);
console.log('server running at http://127.0.0.1:8000/');
function func1(res){
console.log('func1');
res.write('this is func1\r\n');
}
含有多个函数的n1_module_more_funcs.js:
module.exports={
func3:function(res){
console.log("func3 is called");
res.write("\tthis is func3");
},
func4:function(res){
console.log("func4 is called");
res.write("\tthis is func4");
}
}
说明:
morefunc['func4'](response);//使用字符串调用函数
这个很重要,可以将函数名放置在一个数组或者文件中,然后进行调用访问,后续的路由学习中会经常用到