NodeJS
Hello World
console.log('hello world');
模块化
bar.js
:
// 当导出的需求为,只是一个对象时,不可以使用exports={xxx}
exports = 'exports~'
foo.js
:
var foo = 'foo~';
// 其他模块在引用此模块时,只可以获取到foo模块使用exports导出的成员
exports.foo = foo;
exports.add = function (x, y) {
return x + y;
}
mbar.js
:
module.exports = 'mbar';
main.js
:
var foo = require('./foo');
var bar = require('./bar');
var mbar = require('./mbar');
console.log(foo);
console.log(foo.add(1, 2));
console.log(bar); // 所得结果为 {} 而不是'bar'
// 要想只导出一个对象,可以使用module.exports
console.log(mbar)
console.log(module.exports === exports);
文件目录操作
读取目录:
var fs = require('fs');
var path = 'F:/视频/黑马web前端36期/14 nodejs/nodejs资料(7天)/01';
fs.readdir(path, function(err, files){
if (err) {
console.error(err);
} else {
console.dir(files);
}
});
读取文件:
// 浏览器中的 js 没有操作文件的能力
// 但是Node中的 js 具有
// fs 是 file-system 的简写,就是文件系统的意思
// 在node中如果想要进行文件操作,必须要引入核心模块 fs
// fs 模块提供了文件操作的所有API
var fs = require('fs');
// 读取文件
// param1 读取的文件路径
// param2 回调函数,
// 包含两个参数
// 1.err 读取成功,null 读取失败,err错误对象
// 2.data 读取成功,数据
fs.readFile('data/hello.txt', function(){
});
写入文件:
var fs = require('fs');
/**
* param1: 文件路径
* param2: 写入的文件内容
* param3: 回调
*/
fs.writeFile('data/test.txt', '我是nodejs写入的文件', function(error){
if (error) {
console.error('写入失败');
} else {
console.log('文件写入成功');
}
})
网络编程
简单的HTTP服务
/**
* node 提供了一种模块 http, 负责构建web服务器
*/
// 加载http核心模块
var http = require('http');
// 获取一个服务器实例
var server = http.createServer();
// 注册request请求事件,当客户端发送请求,会自动触发request请求事件,执行回调函数
server.on('request', function(request, response){
console.log('收到请求--\n');
// 判断请求路径
var reqUrl = request.url;
console.log('请求路径:' + reqUrl);
var data;
if (reqUrl == '/') {
data = '<h1>欢迎您,请登陆</h1>';
} else if (reqUrl == '/login') {
data = '登陆成功!!';
} else if (reqUrl == '/goods') {
var d = {
flag: '00-00',
msg: 'success',
data: {
products: [
{
name: '苹果',
price: 4.3
},{
name: '栗子',
price: 6.7
},{
name: '香蕉',
price: 2.5
}
]
}
};
data = JSON.stringify(d);
} else {
data = '404 NOT FOUND';
}
response.setHeader('Content-Type', 'text/plain; charset=utf-8');
// 增加相应体中写入数据
// response.write('xxx');
// 需要执行end结束请求,并进行响应,否则客户端会一直等待请求
response.end(data);
});
// 绑定端口号,启动服务器
server.listen(3000, function(){
console.log('服务器启动成功...端口号3000\n');
});
使用模板引擎 art-template
var tmpl = require('art-template');
var fs = require('fs');
let html = '';
fs.readFile("tmpl/tmpl_test1.html", function (err, data) {
console.log('---' + data);
if (err) {
return console.error('read file error');
} else {
// 注意,这里data是二进制数据,必须使用toString转换为字符串
let h = tmpl.render(data.toString(), {
name: 'jack',
age: 18,
hobby: [
'学习', '运动', '撩妹'
]
});
console.log(h);
}
});
tmpl/tmpl_test1.html
:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p>大家好,我叫 {{name}}</p>
<p>今年 {{age}} 岁了</p>
<p>爱好:
{{each hobby value index}}
value
{{/each}}
</p>
</body>
</html>
最后更新于
这有帮助吗?