- CommonJs
CommonJs是模块化的标准,nodejs是模块化的实现
弥补Javascript没有标准的缺陷,
终极目标就是提供类似Python、Rudy、Java语言的标准库
- nodejs模块
核心模块(nodejs本身提供)/文件模块(自定义 模块)
config.js
var str = '这是commonjs模块'
module.exports.str = str
commonjs01.js
var http = require("http")
var Config = require('./config.js')
var app = http.createServer(function(req,res) {
if (req.url == '/favicon.ico') return
res.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
res.write('commonjs')
console.log(Config)
res.end()
})
app.listen(8081)
console.log('server is running')
require查找规则,先在当前目录找,找不到去node_modules文件夹找
add.js
当前目录创建node_modelues/add.js
var tools = {
add: function (x, y) {
return x + y
}
}
module.exports = tools
common02.js
var http = require("http")
/**
* 当前目录找不到,会去node_modules里面找
*/
var Tools = require('add')
var app = http.createServer(function(req,res) {
if (req.url == '/favicon.ico') return
res.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
console.log(Tools.add(1, 2))
res.end()
})
app.listen(8081)
console.log('server is running')
- 生成package.json
如果根目录、node_modules都没有直接找到,会找到require对应文件名下的package.json
say.js
创建node_modules/say/say.js
var say = '我家的猫旺旺叫'
exports.say = say
在node_modules/say文件夹下,执行npm init --yes 命令生成package.json
common03.js
var http = require("http")
/**
* 当前目录找不到,会去node_modules里面找
* 找到say,去package.json里面找入口文件
*/
var say = require('say')
var app = http.createServer(function(req,res) {
if (req.url == '/favicon.ico') return
res.writeHead(200, {"Content-Type": "text/html;charset=UTF-8"});
console.log(say)
res.end()
})
app.listen(8081)
console.log('server is running')
-
文件目录
image
网友评论