如何在Node.js应用程序中处理“ ReferenceError:未定义require”?

时间:2019-08-19 23:33:43

标签: javascript html node.js

用例是从浏览器获取一些用户输入,然后将该数据插入数据库。

我设置了server.js

app.use(express.static('./app'));

app.get('/', function(req, res) {
  res.sendFile(path.resolve('./app/index.html'));
});

我也有一个index.html。我正在将add_response.js导入html。

<script src="js/add_response.js"></script>

<form ng-submit="submit_add()" ng-controller="AddResponse" style="min-height: 230px; margin: 0 auto;">
    <div>
        <textarea name="response_add" ng-model="response_add" rows="10" cols="80"></textarea>
    </div>
    <div class="submitButton">
        <input type="submit" id="submit_add" value="Submit" />
    </div>
</form>

一切正常。然后,我创建了add_response.js来处理从浏览器中获取一些用户输入的操作,并在用户单击“提交”时将其插入数据库中。

var myApp = angular.module("myApp");

myApp.controller('AddResponse', function ($scope, $http) {

    $scope.submit_add = function () {
        $scope.response = $scope.response_add;

        //insert into Couchbase DB
    }
}

问题是要插入Couchbase,我需要导入Couchbase(已与npm一起安装):

var couchbase = require('couchbase')

如果我尝试在add_response.js内执行此操作,则在启动应用程序并进入浏览器后出现错误:ReferenceError: require is not defined

从谷歌搜索来看,这似乎是因为requireadd_response.js中不起作用,因为它是浏览器/客户端(Client on node: Uncaught ReferenceError: require is not defined)。

我不确定处理此问题的最佳方法。我是新来的人,所以很可能我刚得到一个结构不良的应用程序。在上面的stackoverlfow响应中,建议使用browserify,但是我尝试使用pkg将此应用程序捆绑为可执行文件,并且不确定browserify是否可以使用该文件。

是否需要将response_add数据传递到其他地方以将其插入数据库?如果是这样,怎么办? (尽量不使事情复杂化)

0 个答案:

没有答案