您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關modules.exports與exports在node中有什么區別,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
一:node是什么?
node只是平臺,或者說是環境,其實用的還是js語法
主要框架express以及koa,兩個框架是同一個團隊開發,node中也有類似于php的Ci框架的MVC模式
M->model數據層的增刪改差操作
V->view視圖層
C->controller路由控制,主要起到轉發工作
一個完整的node構成:node.js+express+mysql
二:工作代碼的順序:
app.js為node的入口文件,
在view寫好html文件,模板可以任意,
rouer負責路由跳轉
controllers負責具體業務方法的操作,在這個文件里涉及到的增刪改差放在model中
model負責數據的操作
此外,默認的端口號為3000,底層如啟動命令也可以配置,node支持的導出為module.exports(整體導出) / exports(單個導出),模塊引用為require
三:node中modules.exports與exports
node中使用require和modules.exports以及exports是因為node遵循CommonJS規范。
CommonJS定義的模塊分為: 模塊標識(module)、模塊定義(exports) 、模塊引用(require)
使用范圍
require | export / import | module.exports / exports |
---|---|---|
node 和 es6 都支持的引入 | 只有es6 支持的導出引入 | 只有 node 支持的導出 |
exports與modules.exports指向相同地址
exports ->{}<- modules.exports
我理解為實際上每次都是導出modules.exports,本來指向一個地址,如下會切斷modules.exports和exports分別指向兩個地址
a.js
modules.exports = {a:2} exports.a = 1
app.js
var a = require ('./a') console.log(a.a) // 執行node app 打印2
類比
var obj = new Object(); obj.name = 'lisi' //情況一:對象.屬性 // obj.sayHello 相當于export.sayHello obj.sayHello = function () { console.log(this.name) // lisi } obj.sayHello(); //情況二:對象.方法 //obj相當于module.exports obj = { sayHello: function () { // . ... }. } console.log(obj.name) // undefined obj.sayHello(); obj.name(); // 打印不出lisi,已經重寫obj,obj下面沒有name方法
上述就是小編為大家分享的modules.exports與exports在node中有什么區別了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。