我在Mongoose Model中有代码,但在客户端,在Ajax Response中它返回Empty Error {}
tableSchema.pre('validate', function(next) {
// You **must** do `new Error()`. `next('something went wrong')` will
// **not** work
var err = new Error('something went wrong');
next(err);
});
在控制台中显示出错误
Error: something went wrong
at model.<anonymous> (/Volumes/D/www/node_js/ck_app_server_client/server/model/AccountModel.js:48:13)
at model._next (/Volumes/D/www/node_js/ck_app_server_client/server/node_modules/hooks-fixed/hooks.js:62:30)
at model.proto.(anonymous function) [as $__original_validate] (/Volumes/D/www/node_js/ck_app_server_client/server/node_modules/hooks-fixed/hooks.js:108:20)
at model.<anonymous> (/Volumes/D/www/node_js/ck_app_server_client/server/node_modules/mongoose/lib/plugins/validateBeforeSave.js:31:14)
at model._next (/Volumes/D/www/node_js/ck_app_server_client/server/node_modules/hooks-fixed/hooks.js:62:30)
at model.proto.(anonymous function) [as $__original_save] (/Volumes/D/www/node_js/ck_app_server_client/server/node_modules/hooks-fixed/hooks.js:108:20)
at /Volumes/D/www/node_js/ck_app_server_client/server/node_modules/mongoose/lib/services/model/applyHooks.js:153:27
at new Promise.ES6 (/Volumes/D/www/node_js/ck_app_server_client/server/node_modules/mongoose/lib/promise.js:45:3)
at model.wrappedPointCut [as save] (/Volumes/D/www/node_js/ck_app_server_client/server/node_modules/mongoose/lib/services/model/applyHooks.js:131:23)
at /Volumes/D/www/node_js/ck_app_server_client/server/routes/accounts.js:36:7
at Layer.handle [as handle_request] (/Volumes/D/www/node_js/ck_app_server_client/server/node_modules/express/lib/router/layer.js:95:5)
at next (/Volumes/D/www/node_js/ck_app_server_client/server/node_modules/express/lib/router/route.js:137:13)
at Route.dispatch (/Volumes/D/www/node_js/ck_app_server_client/server/node_modules/express/lib/router/route.js:112:3)
at Layer.handle [as handle_request] (/Volumes/D/www/node_js/ck_app_server_client/server/node_modules/express/lib/router/layer.js:95:5)
at /Volumes/D/www/node_js/ck_app_server_client/server/node_modules/express/lib/router/index.js:281:22
at Function.process_params (/Volumes/D/www/node_js/ck_app_server_client/server/node_modules/express/lib/router/index.js:335:12)
答案 0 :(得分:0)
这可以证明同样的行为:
JSON.stringify(Error('something went wrong'))
这导致{}
,因为Error
个实例被序列化为JSON的方式。
如果你想将它序列化为有意义的东西,你必须自己构建一个结构:
JSON.stringify({ error : { message : err.message, stack : err.stack } })
还有plenty of modules提供类似的内容。