我正在尝试在我的laravel5应用程序中使用npm包,但我不知道有节点和要求,有人可以帮我理解我如何使用npm包。
我正在尝试使用以下软件包:
https://www.npmjs.com/package/node-movie
这是我的代码:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script data-main="{!! url() !!}/vendor/lib/require.js" src="{!! url() !!}/vendor/lib/require.js"></script>
<script type="text/javascript">
var imdb = require('imdb-api');
var movie;
imdb.getReq({ name: 'The Toxic Avenger' }, function(err, things) {
movie = things;
});
console.log(movie);
</script>
我在控制台中收到以下错误:
Uncaught Error: Module name "imdb-api" has not been loaded yet for context: _. Use require([])
答案 0 :(得分:2)
第一件事:
您正尝试在客户端使用节点;这意味着您不知道节点是什么。
开始使用它: How do I get started with Node.js
第二
您应该了解javascript和节点中的异步方式以及如何使用它。即使您的代码有效,您的console.log(电影)也会每次都记录未定义。
您可以在节点中搜索与async相关的文章;这是一篇示例文章:https://www.codementor.io/nodejs/tutorial/manage-async-nodejs-callback-example-code
第三
要使用带laravel的节点(在学习如何使用节点之后),您可以启动一个充当REST API的节点服务器,为您的laravel应用程序提供节点包所需的内容(您'请求'来自节点服务器)。
更容易的替代方案:
找到该npm包的纯javascript实现(即搜索不涉及节点的解决方案)。