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

时间:2015-03-29 06:09:48

标签: javascript jquery node.js module packages

我正在尝试使用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并通过我正在使用的index.ejs页面的app.get函数传递变量,但到目前为止我还没有成功。

注意:我尝试使用这些方法的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"
    }
  }

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分:-2)

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

npm install -g natural