繁体   English   中英

我如何在客户端JavaScript中要求节点模块?

[英]How do I require a node module in my client side javascript?

我正在尝试使用javascript和jQuery构建逻辑和节点的自然语言处理机器人,并表示为框架。 我发现了一种自然语言处理工具,这对我的项目https://github.com/NaturalNode/natural非常有用,不幸的是文档很少,而且我只使用node几周了。

这是我在服务器端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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM