2015-02-24 496 views
-1

我是一个初学者节点js和角度js。ReferenceError:“require”未定义

我有一个字符串,它是HTML文本,我想将它转换为玉。

我可以用节点js模块'html2jade'来做到这一点,但是当我在js文件(在控制器)写我的代码时,它给了我一个'require'未定义的错误。

这是代码:

app.controller('comicController', function($scope, resources) { 

    $scope.searchComic = function() { 
    resources.routes.charactersAPI.fetch({title: $scope.title}, function done(response) { 
     console.log(response); 
     $scope.comic = response;  
     //$scope.comic.description 
     require('html2jade').convertHtml($scope.comic.description, {}, function (err, jade) { 
      $scope.desc = jade; 
      }); 
    }); 
    }; 

}); 

任何帮助表示赞赏。提前致谢!

+0

您使用的是requireJS吗? require()是节点中的一个命令,但是你需要一些库来使它在客户端可用。你使用哪个库,以及如何? – doldt 2015-02-24 07:38:55

+0

您应该在构建过程中使用模块,例如browserify – 2015-02-24 07:41:43

+0

您是否已经安装了该模块? – 2015-02-24 08:01:18

回答

-1

您的构建过程需要一个模块。

浏览器没有定义require方法,但是Node.js。借助Browserify,您可以使用与Node中使用require相同的方式编写使用require的代码。

安装browserify

npm install -g browserify 

写模块

// hello.js 
module.exports = function(name) { 
    return 'Hello ' + name + '!'; 
} 

使用模块

// app.js 
var greetings = require('./hello'); 
alert(greetings('Christophe')); 

创建束

browserify app.js -o bundle.js 

请参阅您的包

<html> 
<body> 

<script src="bundle.js"></script> 
</body> 
</html> 

Browserify是一个工具,可以让你捆绑的Node.js模块,并在浏览器中使用它们。换句话说,它允许您使用node.js-style要求编写基于浏览器的应用程序。

你可以检查here作为参考。

+0

你是否指hello.js代替bundle.js?即browserify app.js -o hello.js – poonam31 2015-02-24 09:15:16

+0

而我有我的控制器内的响应对象,以便我想在我的玉文件中使用的数据 – poonam31 2015-02-24 09:20:54

+0

我在哪里写这个? - browserify app.js -o bundle.js – poonam31 2015-02-24 09:32:56