nodejs03-commonjs

作者: 经纬文学 | 来源:发表于2019-11-04 18:52 被阅读0次
  • 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

相关文章

  • nodejs03-commonjs

    CommonJs CommonJs是模块化的标准,nodejs是模块化的实现 nodejs模块 核心模块(node...

网友评论

    本文标题:nodejs03-commonjs

    本文链接:https://www.haomeiwen.com/subject/jqadbctx.html