无法调用方法' get_categories'未定义的

时间:2014-09-30 22:45:09

标签: node.js express

我正在使用Semantics3中的节点模块。我的代码位于名为search.js的文件中,该文件位于我的routes文件夹中。代码如下所示。不知怎的,我没有正确引用模块,因为我在sem3.categories.get_categories上遇到了一个未定义的方法错误。但是当我将它移动到app.js文件夹时,同样的代码可以正常工作。我是否正确地确定我错误地引用了节点模块?如果是这样,从app.js以外的文件引用模块的正确方法是什么?

var express = require('express');
var router = express.Router();
var api_key = 'my key';
var api_secret = 'my secret';
var sem3 = require('semantics3-node')(api_key,api_secret);

/* GET search results. */
router.get('/', function(req, res) {
    // Build the query
sem3.products.categories_field( "cat_id", 4992 );

// Make the query
sem3.categories.get_categories(
   function(err, categories) {
      if (err) {
         console.log("Couldn't execute query: get_categories");
         return;
      }
    // View the results of the query
    console.log( "Results of query:\n" + JSON.stringify( categories ) );
    res.send(JSON.stringify(categories));

   }
);




});

module.exports = router;

1 个答案:

答案 0 :(得分:0)

此博客文章可能有所帮助 - http://www.bennadel.com/blog/2169-where-does-node-js-and-require-look-for-modules.htm

我最近没有使用过Node,但它必须与相对/绝对路径有关。我认为它正在'routes'子目录中搜索node_modules文件夹。您可能必须定义从“routes”到node_modules sem3的特定相对目录路径。

而不是

var sem3 = require('semantics3-node')(api_key,api_secret);

执行类似

的操作

var sem3 = require('[插入相对路径即... / modules / lib / semantics3-node]')(api_key,api_secret);