如何在客户端javascript中需要节点模块?

我正在尝试使用javascript和jQuery为逻辑和节点构建一个自然语言处理机器人并表达为框架。 我发现了一个对我的项目非常有用的自然语言处理工具https://github.com/NaturalNode/natural,遗憾的是文档很稀疏,我只使用了几个星期的节点。

这是我在服务器端app.js上的代码

var natural = require('natural'), tokenizer = new natural.WordTokenizer(); stemmer.attach(); var express = require("express"); app = express(); app.set("view engine", "ejs"); app.use(express.static(__dirname + '/public')); 

我在这里需要’自然’模块,但我无法使用文档中概述的方法。

 var natural = require('natural'), tokenizer = new natural.WordTokenizer(); console.log(tokenizer.tokenize("your dog has fleas.")); // [ 'your', 'dog', 'has', 'fleas' ] 

方法’tokenizer’未定义。 我已经对此做了大量研究,并研究了使用module.export并通过app.get函数为我正在使用的index.ejs页面传递变量,但到目前为止我还没有成功。

注意:我尝试使用这些方法的javascript文件位于public / javascript目录中,而app.js文件位于主项目目录中。 我试图直接在javascript文件中要求’自然’包我试图使用方法但是抛出错误说require是一个未定义的方法。

这是package.json文件:

  { "name": "JSAIN", "version": "1.0.0", "description": "", "main": "app.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "ejs": "^2.3.1", "express": "^4.12.3", "natural": "^0.2.1", "underscore": "^1.8.2" } } 

也许你可以试试browserify ,它允许你在浏览器中使用一些npm模块。

将我的评论转换为答案……

自然模块表示它是在node.js环境中运行的。 除非它具有在浏览器中运行的特定版本,否则您将无法在浏览器中运行此版本。

你用全局模式安装该模块并在package.json中定义了该模块吗? 否则,试试这个:

 npm install -g natural