 ThinkJS 2.2 中文文档}catch(err){ //通过 err.message 拿到具体的错误信息 return this.fail(err.message); } } } 上面的方式虽然可以通过 try/catch 来捕获异常,但在 catch 里并不知道异常是哪个触发的。 实际项目中,经常要根据不同的错误返回不同的错误信息给用户,这时用整体的 try/catch 就不太 方便了。 此时可 return this.fail('API2 ERROR'); } } } 如上面代码所述,通过返回特定值判断就可以方便的知道是哪个异步接口发生了错误,这样就可 以针对不同的错误返回不同的错误信息。 如何忽略异常 使用 async/await 时,如果 Promise 返回了一个 rejected Promise,那么会抛出异常。如果这个异 常不重要需要忽略的话,可以通过 catch 方法返回一个 nginx 部署时,访问出现 502 的情况,这个情况一 般为 node 服务没有正常启动导致的。可以通过 pm2 logs 看对应的错误信息来分析排查,也可以 先关闭服务,手动通过 node www/production.js 启动服务,然后访问看具体的错误信息。 设置跨域头信息 高级浏览器支持通过设置头信息达到跨域请求,ThinkJS 里可以通过下面的方式来设置: export default0 码力 | 277 页 | 3.61 MB | 1 年前3 ThinkJS 2.2 中文文档}catch(err){ //通过 err.message 拿到具体的错误信息 return this.fail(err.message); } } } 上面的方式虽然可以通过 try/catch 来捕获异常,但在 catch 里并不知道异常是哪个触发的。 实际项目中,经常要根据不同的错误返回不同的错误信息给用户,这时用整体的 try/catch 就不太 方便了。 此时可 return this.fail('API2 ERROR'); } } } 如上面代码所述,通过返回特定值判断就可以方便的知道是哪个异步接口发生了错误,这样就可 以针对不同的错误返回不同的错误信息。 如何忽略异常 使用 async/await 时,如果 Promise 返回了一个 rejected Promise,那么会抛出异常。如果这个异 常不重要需要忽略的话,可以通过 catch 方法返回一个 nginx 部署时,访问出现 502 的情况,这个情况一 般为 node 服务没有正常启动导致的。可以通过 pm2 logs 看对应的错误信息来分析排查,也可以 先关闭服务,手动通过 node www/production.js 启动服务,然后访问看具体的错误信息。 设置跨域头信息 高级浏览器支持通过设置头信息达到跨域请求,ThinkJS 里可以通过下面的方式来设置: export default0 码力 | 277 页 | 3.61 MB | 1 年前3
 ThinkJS 3.0 中文文档处理静态资源请求,静态资源都放在 www/static/ 下,如果命中当前请求是个静 态资源,那么这个 middleware 处理完后提前结束,不再执行后面的 middleware。 trace 处理一些错误信息,开发环境下打印详细的错误信息,生产环境只是报一个通用的错 误。 payload 处理用户上传的数据,包含:表单数据、文件等。解析完成后将数据放在 request.body 对象上,方便后续读取。 router errnoField 和 errmsgField 来修改。 fail(errno, errmsg, data) errno {Number} 错误号 errmsg {String} 错误信息 data {Mixed} 额外的错误数据 return {Boolean} false { errno: 1000, errmsg: 'no permission', data: validateErrors 属性获取详细的错误信息。拿到 错误信息后,可以通过 this.fail 方法把错误信息以 JSON 格式输出,也可以通过 this.display 方法输出一个页面,Logic 继承了 Controller 可以调用 Controller 的 方法。 自动调用校验方法 多数情况下都是校验失败后,输出一个 JSON 错误信息。如果不想每次都手动调用 this.validate0 码力 | 129 页 | 2.12 MB | 1 年前3 ThinkJS 3.0 中文文档处理静态资源请求,静态资源都放在 www/static/ 下,如果命中当前请求是个静 态资源,那么这个 middleware 处理完后提前结束,不再执行后面的 middleware。 trace 处理一些错误信息,开发环境下打印详细的错误信息,生产环境只是报一个通用的错 误。 payload 处理用户上传的数据,包含:表单数据、文件等。解析完成后将数据放在 request.body 对象上,方便后续读取。 router errnoField 和 errmsgField 来修改。 fail(errno, errmsg, data) errno {Number} 错误号 errmsg {String} 错误信息 data {Mixed} 额外的错误数据 return {Boolean} false { errno: 1000, errmsg: 'no permission', data: validateErrors 属性获取详细的错误信息。拿到 错误信息后,可以通过 this.fail 方法把错误信息以 JSON 格式输出,也可以通过 this.display 方法输出一个页面,Logic 继承了 Controller 可以调用 Controller 的 方法。 自动调用校验方法 多数情况下都是校验失败后,输出一个 JSON 错误信息。如果不想每次都手动调用 this.validate0 码力 | 129 页 | 2.12 MB | 1 年前3
 ThinkJS 1.2 中文文档name: name, pwd: md5(pwd) }).find().then(function(data){ if(isEmpty(data)){ // ⽤用户名或者密码不正确,返回错误信息 return self.error(403, "⽤用户名或者密码不正确"); }else{return self.session("userInfo", data); } }).then(function(){ 请求使⽤用的。 ThinkJS ⾥里提供了数据校验的功能,在 Action ⾥里通过 this.valid ⽅方法使⽤用。如: 除了检测单个值,也可以同时检测多个值,返回所有的错误信息。如: 返回的错误信息为: ⽀支持的检测类型有: length 限制⻓长度,需要传⼊入限制⻓长度的数值。如: length_args: [6] ⻓长度不能⼩小于 6, length_args: [6 检测单个值时返回是否合法 var isValid = this.valid(email, "email"); JavaScript // 检测多个值,返回全部的错误信息 var errMsg = this.valid([{ name: "email", value:0 码力 | 104 页 | 1.29 MB | 1 年前3 ThinkJS 1.2 中文文档name: name, pwd: md5(pwd) }).find().then(function(data){ if(isEmpty(data)){ // ⽤用户名或者密码不正确,返回错误信息 return self.error(403, "⽤用户名或者密码不正确"); }else{return self.session("userInfo", data); } }).then(function(){ 请求使⽤用的。 ThinkJS ⾥里提供了数据校验的功能,在 Action ⾥里通过 this.valid ⽅方法使⽤用。如: 除了检测单个值,也可以同时检测多个值,返回所有的错误信息。如: 返回的错误信息为: ⽀支持的检测类型有: length 限制⻓长度,需要传⼊入限制⻓长度的数值。如: length_args: [6] ⻓长度不能⼩小于 6, length_args: [6 检测单个值时返回是否合法 var isValid = this.valid(email, "email"); JavaScript // 检测多个值,返回全部的错误信息 var errMsg = this.valid([{ name: "email", value:0 码力 | 104 页 | 1.29 MB | 1 年前3
 NodeJS 中文文档 V0.2.3compile(code, process.compile(code, filename) filename) filename) filename) 同 evel 方法相同,但是你可以指定文件名,这样可以更好的输出错误信息,并且运行的代码(指通过 code 参数 传递的代码)无法访问本地作用域。如果编译的代码产生堆栈输出,filename 参数将会被用作这段代码的文件名。 示例,使用 process.compile 参数包含的代码并返回结果,就如同这 些代码是从 filename 参数指定文件中加载的一样。这些代码不能访问本地作用域。filename 参数是可选的。(译 注:filename 参数的作用是为了更好的输出错误信息) 示例:演示使用 Script.runInThisContext 函数和 eval 函数执行同一段代码: var localVar = 123, usingscript, evaled, Script localVar 变量的值并没有改变。 eval 函数执 行的代码可以访问本地作用域,所以 localVal 的值被改变了。 如果代码有语法错误,Script.runInThisContext 会输出错误信息到控制台(stderr)并抛出异常。 Script.runInNewContext(code, Script.runInNewContext(code, Script.runInNewContext(code0 码力 | 62 页 | 542.14 KB | 1 年前3 NodeJS 中文文档 V0.2.3compile(code, process.compile(code, filename) filename) filename) filename) 同 evel 方法相同,但是你可以指定文件名,这样可以更好的输出错误信息,并且运行的代码(指通过 code 参数 传递的代码)无法访问本地作用域。如果编译的代码产生堆栈输出,filename 参数将会被用作这段代码的文件名。 示例,使用 process.compile 参数包含的代码并返回结果,就如同这 些代码是从 filename 参数指定文件中加载的一样。这些代码不能访问本地作用域。filename 参数是可选的。(译 注:filename 参数的作用是为了更好的输出错误信息) 示例:演示使用 Script.runInThisContext 函数和 eval 函数执行同一段代码: var localVar = 123, usingscript, evaled, Script localVar 变量的值并没有改变。 eval 函数执 行的代码可以访问本地作用域,所以 localVal 的值被改变了。 如果代码有语法错误,Script.runInThisContext 会输出错误信息到控制台(stderr)并抛出异常。 Script.runInNewContext(code, Script.runInNewContext(code, Script.runInNewContext(code0 码力 | 62 页 | 542.14 KB | 1 年前3
 Node.js Manual & Documentationnew Error("Wrong value"); }, Error ); Validate error message using RegExp: 使用正则表达式验证错误信息: assert.throws( function() { throw new Error("Wrong value"); }, /value/ );0 码力 | 153 页 | 1.21 MB | 1 年前3 Node.js Manual & Documentationnew Error("Wrong value"); }, Error ); Validate error message using RegExp: 使用正则表达式验证错误信息: assert.throws( function() { throw new Error("Wrong value"); }, /value/ );0 码力 | 153 页 | 1.21 MB | 1 年前3
共 5 条
- 1













