这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战
require的加载顺序
require加载文件是运行到该位置才加载,请看下面的一段代码
a.js
console.log('a开始执行了');
require('./b');
console.log('a 执行结束了');
复制代码
b.js
console.log('b执行结束');
复制代码
执行结果
Node中没有全局作用域只有模块作用域
请看下面的两端代码
a.js
var a = '777'
console.log('a开始执行了');
require('./b');
console.log('a 执行结束了');
console.log('a的值是:',a);
复制代码
b.js
var a = '666'
console.log('b执行结束');
复制代码
执行结果
使用exports暴露模块
exports其实是一个空对象,我们相当于向这个空对象中添加元素,然后进行暴露。
a.js
const test = require('./b');
console.log(test.a);
复制代码
b.js
var a = '666'
exports.a = a;
复制代码
node运行 a.js
响应中文编码
服务器直接返回中文,在浏览器上显示的是乱码,所以我们可以通过设置setHeader中的编码格式来解决这一问题。
server.on('request',(req,res) => {
res.setHeader('Content-Type','text/plain; charset=utf-8');
res.end('Node,你好');
})
复制代码
Content-Type有什么作用?
Content-Type就是用来告知对方发送的数据内容是什么类型的。下面我们将给出Content-Type的例子
例子:设置为普通文本类型(plain)与html类型的
server.on('request',(req,res) => {
const url = req.url;
if (url === '/plain') {
res.setHeader('Content-Type','text/plain; charset=utf-8');
res.end('这是中文哦!');
} else if (url === '/html') {
res.end('<h1>你好这是一级标题</h1');
}
})
复制代码
浏览器会默认将html的字符串解析为HTML代码,如果我们想要的不是HTML代码而是字符串,可以通过设置setHeader为text/plain;
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END