javascript - sails res.view 不是函数

标签 javascript node.js sails.js

我将 sails 用于我的 node.js 项目 我对 res.view() 有问题,有时当 View Controller 操作应用程序退出并在控制台中显示此行时:

/var/www/nodejs/khayyam_computer/node_modules/sails-mysql/node_modules/mysql/lib/protocol/Parser.js:77
        throw err; // Rethrow non-MySQL errors
        ^

TypeError: res.view is not a function
    at findCB (/var/www/nodejs/khayyam_computer/api/controllers/EventsController.js:119:29)
    at wrapper (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/lodash/index.js:3592:19)
    at applyInOriginalCtx (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:417:80)
    at wrappedCallback (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:320:18)
    at callback.success (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/switchback/lib/normalize.js:33:31)
    at _switch (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/switchback/lib/factory.js:58:28)
    at returnResults (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/basic.js:180:9)
    at /var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/basic.js:86:16
    at /var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:83:7
    at /var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/node_modules/async/lib/async.js:52:16
    at Object.async.forEachOf.async.eachOf (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/node_modules/async/lib/async.js:236:30)
    at Object.async.forEach.async.each (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/node_modules/async/lib/async.js:209:22)
    at /var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:436:11
    at /var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:574:5
    at /var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/node_modules/async/lib/async.js:52:16
    at Object.async.forEachOf.async.eachOf (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/node_modules/async/lib/async.js:236:30)
    at Object.async.forEach.async.each (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/node_modules/async/lib/async.js:209:22)
    at _buildChildOpts (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:464:9)
    at _execChildOpts (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:432:8)
    at /var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/query/finders/operations.js:81:10
    at wrapper (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/lodash/index.js:3592:19)
    at applyInOriginalCtx (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:417:80)
    at wrappedCallback (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:320:18)
    at callback.success (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/switchback/lib/normalize.js:33:31)
    at _switch (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/switchback/lib/factory.js:58:28)
    at /var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/adapter/dql.js:166:7
    at wrapper (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/lodash/index.js:3592:19)
    at applyInOriginalCtx (/var/www/nodejs/khayyam_computer/node_modules/sails/node_modules/waterline/lib/waterline/utils/normalize.js:417:80)

Process finished with exit code 1

我不知道为什么!!!

我的操作代码:

view: function (req, res) {
        var event_id = req.param("id", ''); // get id event

        if (event_id.trim() != null && event_id.trim().length > 0) { // check event id value
            Event.findOne({id: event_id, type: 'event', 'status': 'published'}).exec(function findCB(error, event) {
                if (error)
                    return res.badRequest({error: req.__("event id Can't be Null")});
                if (typeof event != null && typeof event != "undefined") {
                    var moment = require('moment-jalaali');
                    moment.loadPersian();
                    moment.locale('fa', {
                        calendar: {
                            sameElse: "jD jMMMM jYYYY HH:mm"
                        }
                    });
                    if (req.xhr) {
                        res.json({moment: moment, event: event});
                        res.end();
                    } else {
                        breadcrumb.create(res, req, [
                            ['رویدادها', 'events/'],
                            [event.title, 'events/' + event.id]
                        ]);
                        res.view('events/view', {moment: moment, event: event});
                        res.end();
                    }
                } else
                    return res.notFound(404, '404');
            });
        } else {
            return res.badRequest({error: {"rule": "id", "message": req.__("event ID required and must be integer")}});
        }
    }

这个问题在其他controller和action中也存在

最佳答案

确保您已启用名为 views 的内置 sails Hook 。 查看 .sailsrc 文件,它可能看起来像这样:

{
  "generators": {
    "modules": {}
  },
  "_generatedWith": {
    "sails": "1.4.2",
    "sails-generate": "2.0.3"
  },
  "hooks": {
    "pubsub": false,
    "blueprints": false,
    "session": false,
    "views": false,
    "security": false,
    "i18n": false
  }
}

您需要从文件中完全删除这一行,而不是将其切换到yes 状态。

关于javascript - sails res.view 不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36395313/

相关文章:

javascript - Sails.js - 在 url 中包含 'contains' 或查询以获取适当的 JSON 数据

javascript - 为什么找不到这个 JavaScript 函数

javascript - Angular中的http服务发送post数据作为请求正文的键,没有值

vb.net - 从 Windows 窗体关闭命令窗口

javascript - 我应该如何使用水线和 Bluebird 处理 promise 和回调?

javascript - 用 cookie 或 localstorage 替换 sails.js redis session 存储

javascript - 生成 doc 或 pdf 文件的图像预览

javascript - underscore.js _.memoize() 在行动中的例子?

javascript - jquery 未在 Rails 服务器上加载 - '$ is not defined'

node.js - 使用Bot框架node.js V4的FB列表模板