node中modules.exports與exports導(dǎo)出的區(qū)別
一:node是什么?
node只是平臺,或者說是環(huán)境,其實用的還是js語法
主要框架express以及koa,兩個框架是同一個團隊開發(fā),node中也有類似于php的Ci框架的MVC模式
- M->model數(shù)據(jù)層的增刪改差操作
- V->view視圖層
- C->controller路由控制,主要起到轉(zhuǎn)發(fā)工作
一個完整的node構(gòu)成:node.js+express+mysql
二:工作代碼的順序:
- app.js為node的入口文件,
- 在view寫好html文件,模板可以任意,
- rouer負責路由跳轉(zhuǎn)
- controllers負責具體業(yè)務(wù)方法的操作,在這個文件里涉及到的增刪改差放在model中
- model負責數(shù)據(jù)的操作
此外,默認的端口號為3000,底層如啟動命令也可以配置,node支持的導(dǎo)出為module.exports(整體導(dǎo)出) / exports(單個導(dǎo)出),模塊引用為require
三:node中modules.exports與exports
node中使用require和modules.exports以及exports是因為node遵循CommonJS規(guī)范。
CommonJS定義的模塊分為: 模塊標識(module)、模塊定義(exports) 、模塊引用(require)
使用范圍
require | export / import | module.exports / exports |
---|---|---|
node 和 es6 都支持的引入 | 只有es6 支持的導(dǎo)出引入 | 只有 node 支持的導(dǎo)出 |
exports與modules.exports指向相同地址
exports ->{}<- modules.exports
我理解為實際上每次都是導(dǎo)出modules.exports,本來指向一個地址,如下會切斷modules.exports和exports分別指向兩個地址
a.js
modules.exports = {a:2} exports.a = 1
app.js
var a = require ('./a') console.log(a.a) // 執(zhí)行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,已經(jīng)重寫obj,obj下面沒有name方法
此文章也是自己的學(xué)習記錄,如有不足,歡迎指正指導(dǎo)。也希望大家多多支持腳本之家。
相關(guān)文章
Node.js刷新session過期時間的實現(xiàn)方法推薦
下面小編就為大家?guī)硪黄狽ode.js刷新session過期時間的實現(xiàn)方法推薦。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-05-05node使用Mongoose類庫實現(xiàn)簡單的增刪改查
Mongoose是在nodejs環(huán)境中對MongoDB數(shù)據(jù)庫操作的封裝,這篇文章主要介紹了node使用Mongoose類庫實現(xiàn)簡單的增刪改查,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11手寫Node靜態(tài)資源服務(wù)器的實現(xiàn)方法
這篇文章主要介紹了手寫Node靜態(tài)資源服務(wù)器的實現(xiàn)方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03使用pm2部署node生產(chǎn)環(huán)境的方法步驟
這篇文章主要介紹了使用pm2部署node生產(chǎn)環(huán)境的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-03-03NodeJS使用formidable實現(xiàn)文件上傳
這篇文章主要為大家詳細介紹了NodeJS使用formidable實現(xiàn)文件上傳的相關(guān)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-10-10