Vscode中的Node.js代码提示插件: npm install –save-dev @types/node
// 使用node环境下的node命令来执行代码 tab键补全
function fn(x, y) {
return x + y
}
console.log(fn(1, 2))
4. 模块化语法有两种
// module.exports = {属性名: 属性值}
// 1. 模块 == 文件
// 2. 每个模块都有自己的独立作用域 外部无法访问
let name = '张三'
let age = 10
// 3. 导出模块: 想让哪个文件用就导出哪个
module.exports = {
name: name,
age
}
// 4. 不会重复导入对象
console.log(111)
// let 模块名 = require('文件路径')
let mokuai = require('./mokuai.js')
console.log(mokuai)
// 模块化语法有缓存机制
let m = require('./mokuai.js')
console.log(m)
console.log(mokuai == m) // true
let fs = require('fs')
fs.readFile('./txt/1.txt', 'utf8', (err, data) => {
// 有err说明失败 没有则成功
if (err) {
throw err
} else {
console.log(data)
}
})
fs.writeFile('./txt/1.txt', '你好啊', err => {
// 如果本身有文件会覆盖 没有则创建文件
if (err) {
throw err
} else {
console.log('写入成功')
}
})
let path = require('path')
// 1. 获取文件扩展名 告诉你文件是什么格式 extname
console.log(path.extname('./txt/1.txt'))
// 2. 拼接相对路径 a/b/c 用join方法 对象join跟这个不一样
console.log(path.join('a', 'b', 'c'))
// 3. 拼接绝对路径 默认从磁盘拼接 c://xxxx/a/b resolve
console.log(path.resolve('a', 'b'))
// 4. 获取当前文件的绝对路径 __dirname
console.log(__dirname)
// dirname可以代替resolve方法 区别为: 用dirname不用导入模块
console.log(`${__dirname}/a/b`)
let http = require('http')
let app = http.createServer((request, response) => {
console.log(request.url, decodeURI(request.url)) // 请求报文
response.writeHead(200, {
'Content-Type': 'text/html;charset=utf-8'
})
// 想实现不同路径响应不同数据 先判断url 根据不同url响应不同数据
if (request.url === '/') {
response.end('我是首页')
} else if (request.url === '/login') {
response.end('我是登录页')
} else {
response.end('404 not found')
}
})
app.listen('3000', '192.168.0.103', () => {
// 192.168.0.103:3000
console.log('开启成功')
})
let app = http.createServer((req, res) => {
console.log(req.url, decodeURI(req.url))
// 1.使用fs模块读取文件响应给浏览器 用dirname获取文件路径
if (req.url == '/') {
fs.readFile(`${__dirname}/index.html`, (err, data) => {
// 2.判断成功则响应文件数据
if (err) throw err
res.end(data)
})
} else if (req.url == '/o') {
fs.readFile(`${__dirname}/login.html`, (err, data) => {
if (err) throw err
res.end(data)
})
}
})
let http = require('http')
let fs = require('fs')
let app = http.createServer((req, res) => {
console.log(req.url)
// 4. 判断url 并使用fs模块读取文件 判断文件并响应文件
if (req.url == '/') {
fs.readFile(`${__dirname}/www/index.html`, (err, data) => {
if (err) {
throw err
} else {
res.end(data)
}
})
} else {
// 5. 根据请求的url拼接读取对应文件的路径并返回
fs.readFile(`${__dirname}/www/${decodeURI(req.url)}`, (err, data) => {
if (err) {
throw err
} else {
res.end(data)
}
})
}
})
app.listen('3000', '192.168.0.103', () => {
console.log('开启成功')
})