Node,js doesn´t find any modules

戏子无情 提交于 2019-12-12 04:24:29

问题


I am trying to do one of the node-horseman examples, but I am finding with a problem. The example I am trying to follow is this:

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();

And the errors it throws when I make phantomjs example.js are these:

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

I try to install http locally using npm install http, but after this, there is only a package.json on example/node_modules/http, and if I use npm install in this location, it throws three warnings:

  • it is too the name of a core module
  • no description
  • no repository field

About tty, making a local installation it throws a 404 error.

I try this solution (include npm folder on the path) Nodejs Cannot find module but it didn´t work.

Any suggestion??

Thanks.


EDIT NOT SOLUTION

I reinstall node (now my version is node 0.12.3, npm 2.9.1, and phantomjs 1.9.8), when I try this simple example from the nodejs web:

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/');

And if I run "node example.js" it works, but if I do "phantomjs example.js" the problem persists "Cannot find module http".

I tried install phantomjs via npm ("npm install -g phantomjs") and via downloading the zip on their web, unzipping and adding to the PATH the route to unzipped folder.

One more data (maybe could be a help) my SO is Windows 8.1.

RE-EDIT

I am watching that on the folder where I have installed node, the only folder on node_modules is npm, is it right?? And on C:\Users\Eloy\AppData\Roaming I have two npm folders, one of them is npm-cache and the other one simply npm. The node_modules of this last one doesn´t contain the http module, the npm-cache has a lot of modules and http incluiding... is it important??

Thanks.


回答1:


+1 your observation in first EDIT i.e scripts run like $ phantomjs can't access global modules via require(), it can access local modules though. Not sure if this is a documented shortcoming of phantomjs



来源:https://stackoverflow.com/questions/30338011/node-js-doesn%c2%b4t-find-any-modules

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!