我正在嘗試做一個節點騎馬的例子,但我發現有一個問題。我試圖效仿的榜樣是:節點,js沒有找到任何模塊
var Horseman = require('node-horseman');
var horseman = new Horseman();
var numLinks = horseman
.open('http://www.google.com')
.type('input[name="q"]', 'github')
.click("button:contains('Google Search')")
.waitForNextPage()
.count("li.g");
console.log("Number of links: " + numLinks);
horseman.close();
而且它拋出的錯誤,當我做phantomjs example.js是這些:
Error: Cannot find module 'http'
phantomjs://bootstrap.js:299 in require
phantomjs://bootstrap.js:263 in require
:3
Error: Cannot find module 'tty'
phantomjs://bootstrap.js:299 in require
phantomjs://bootstrap.js:263 in require
:6
TypeError: Object is not a constructor (evaluating 'require('debug')('horseman')')
:5
TypeError: Object is not a constructor (evaluating 'new Horseman()')
phant.js:2 in global code
我嘗試在本地使用NPM安裝HTTP安裝HTTP,但在此之後,只有在例如的package.json/node_modules/HTTP,如果我用在這個位置NPM安裝,它拋出三次警告:
- 實在是太核心模塊的名稱
- 沒有說明
- 沒有庫場
關於TTY,使其拋出一個404錯誤本地安裝。
我試試這個解決方案(包括路徑上的npm文件夾)Nodejs Cannot find module但它沒有工作。
任何建議?
謝謝。
編輯 解不了
我重新安裝節點(我現在的版本是節點0.12.3,NPM 2.9.1和1.9.8 phantomjs),當我嘗試這個簡單的例子從網絡的NodeJS:
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');
如果我跑「節點example.js」它的工作原理,但如果我這樣做「phantomjs example.js」問題仍然存在「找不到模塊HTTP」。
我試着通過npm(「npm install -g phantomjs」)安裝phantomjs,並通過在網上下載zip文件,解壓並添加到PATH解壓縮文件夾的路徑。
還有一個數據(也許可以是一個幫助)我的SO是Windows 8.1。
重新編輯
我看那個地方我已經安裝節點的文件夾,在node_modules唯一的文件夾NPM,是不是?在C:\ Users \ Eloy \ AppData \ Roaming中我有兩個npm文件夾,其中一個是npm-cache,另一個是npm。最後一個節點的node_modules不包含http模塊,npm-cache有很多模塊,並且http包含...是否重要?
謝謝。
「http」模塊是標準node.js安裝的一部分。這聽起來像你沒有正確安裝節點,以致正在運行的節點實例找不到內置模塊。 – jfriend00
謝謝@ friend00但是...我想記住我運行了一個快速應用程序......並且它需要http模塊,沒有?然而,明天我會卸載並重新安裝...這是正確的方式,還是有更好的? –
你可以編寫一個非常簡短的測試應用程序來完成'var http = require('http');'然後使用該模塊來查看它是否工作。不同的操作系統上有不同的node.js安裝問題(例如,Windows與Linux非常不同)。 – jfriend00