我有一个使用幻像js和nodejs app的应用程序。我在该节点应用程序中使用了几个节点模块,它通过幻像js运行。我需要使用amazon node aws-sdk。我用
安装了它npm install aws-sdk
该节点应用程序能够在我执行此操作后找到
var AWS = require('aws-sdk');
但是它开始提示其他本机节点js模块的错误,其中三个是专门的,“加密”,“定时器”,“路径”等。我检查了/ usr / lib / nodejs文件夹,那些都在那里,那么为什么phantomjs节点app无法找到它们呢? 具体错误
Error: Cannot find module 'crypto'
phantomjs://platform/bootstrap.js:299 in require
phantomjs://platform/bootstrap.js:263 in require
phantomjs://platform/util.js:4
TypeError: undefined is not a function (evaluating 'AWS.util.update')
phantomjs://platform/core.js:16
Error: Cannot find module 'path'
phantomjs://platform/bootstrap.js:299 in require
phantomjs://platform/bootstrap.js:263 in require
phantomjs://platform/api_loader.js:3
Error: Cannot find module 'events'
phantomjs://platform/bootstrap.js:299 in require
phantomjs://platform/bootstrap.js:263 in require
phantomjs://platform/xml2js.js:12
phantomjs://platform/xml2js.js:538
TypeError: undefined is not an object (evaluating 'AWS.XML.Parser = require('./xml/node_parser')')
如果我直接转到节点shell并且需要(' aws-sdk'),它确实可以正常工作。 我从像这样的phantomjs运行节点应用程序
phantomjs test.js
或
/usr/bin/phantomjs test.js
它只是不与幻影合作,任何想法和帮助都会在这里受到赞赏。
答案 0 :(得分:3)
PhantomJS与node.js不兼容。
当您像
一样运行它时/usr/bin/phantomjs test.js
你在PhantomJS里面运行一个脚本。
如果您想从PhantomJS启动node.js应用程序,可以使用exec或spawn方法来执行此操作,请参阅this answer