iT邦幫忙

0

Node.js 無法載入模組

  • 分享至 

  • xImage

各位 iT 邦幫忙的大神好!弱弱的我自修 Node.js 遇到問題,以下是我的模組程式,我將她存為 index.js

var content = "hello world";
exports.message = content;

然後我運行 npm init,得到如下的 json 檔

{
  "name": "moduletest",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "node test/test.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "message": "0.0.1"
  }
}

如下是我的 test 資料夾下的 test.js 程式

var msg = require ("message");
console.log (msg);

但運行node test卻找不到 module (有用npm install message --save安裝成功),直接在 test 資料夾裡運行node test.js 輸出 {},但我應該要輸出 hello world,輸出空大括號與我要的不同。弱弱的我是照歐萊禮的『Node 學習手冊:伺服器端開發』自修的,雖然能大概猜出程式碼的意思 (沒有完全看懂) 但運行程式時覺得頗燒腦,比如不知道要把檔案放在哪個資料夾或該提供甚麼檔案,有點像我以前做代工廠的『TEST CASE』。總之希望各位大神幫幫我吧!

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
HAO
iT邦研究生 3 級 ‧ 2023-08-20 19:10:09
最佳解答

你好,如果你要在 test.js 使用 index.js 的內容,可以直接用相對路徑的方式載入:

const yourModule = require('../index');
console.log(yourModule.message); // hello world

資料夾結構:

.
├─ node_modules
├─ index.js
├─ test
|  └─ test.js
└─ package.json

關於 npm install message --save 的部分,應該是安裝到了這個同樣名字叫 message 的 package。

TO [HAO] :大神的回答真是精闢啊!弱弱的我剛剛把 message 改成 message1 果然提示 “ NOT FOUND ”,看起來是我沒有註冊 NPMJS ORG 並且沒有 publish,但我是初學者用不到 publish 的功能,所以這個驗證就此打住。您的相片看起來很年輕,但卻有如此深厚的 Node.js 功力,看來弱弱的我真該加把勁嚕~

HAO iT邦研究生 3 級 ‧ 2023-08-21 20:41:11 檢舉

小弟我也在學習的路上,一起努力囉!

TO [HAO] :剛剛看了大神您的檔案,覺得您真的是很強,所以就追蹤您了。聊些題外話!弱弱的我以前是寫韌體的,工作之餘都在做 Side Project 導致正職效率低落,考績數次被打 B。現在因為想練瑜珈計劃轉換到中山區的網路公司,為了考績下定決心不再做 Side Project。我們寫程式最高境界就是做出世界通用的 Open Source,所以是比創意的,但大家都是上班族只能用閒暇時間開發難度很高,而且弱弱的我英文很弱看不懂原文第一手資料,頂多就是參加實體論壇研討會認識一下各方高人。

我要發表回答

立即登入回答