Node.js 环回将UrlNotFoundError抛出框外
我一直遵循关于如何使用环回设置Node.js应用程序的说明,如和中所述。按照这些步骤,当我尝试访问应用程序的RESTAPI时,会出现UrlNotFoundError 复制步骤:Node.js 环回将UrlNotFoundError抛出框外,node.js,loopbackjs,strongloop,Node.js,Loopbackjs,Strongloop,我一直遵循关于如何使用环回设置Node.js应用程序的说明,如和中所述。按照这些步骤,当我尝试访问应用程序的RESTAPI时,会出现UrlNotFoundError 复制步骤: 已安装Strongloop命令行:$npm安装-g Strongloop 运行环回的应用程序生成器:$slc Loopback 运行项目:$节点。终端显示以下内容 Web服务器正在侦听:http://0.0.0.0:3000 浏览您的RESTAPIhttp://0.0.0.0:3000/explorer 浏览RESTAP
$npm安装-g Strongloop
$slc Loopback
$节点。
终端显示以下内容Web服务器正在侦听:http://0.0.0.0:3000
浏览您的RESTAPIhttp://0.0.0.0:3000/explorer
{
"error": {
"statusCode": 404,
"name": "Error",
"message": "Cannot POST /api/Users",
"status": 404,
"stack": "Error: Cannot POST /api/Users\n at raiseUrlNotFoundError (/Repos/loopback-test/node_modules/loopback/server/middleware/url-not-found.js:20:17)\n at Layer.handle [as handle_request] (/Repos/loopback-test/node_modules/loopback/node_modules/express/lib/router/layer.js:95:5)\n at trim_prefix (/Repos/loopback-test/node_modules/loopback/node_modules/express/lib/router/index.js:312:13)\n at /Repos/loopback-test/node_modules/loopback/node_modules/express/lib/router/index.js:280:7\n at Function.process_params (/Repos/loopback-test/node_modules/loopback/node_modules/express/lib/router/index.js:330:12)\n at next (/Repos/loopback-test/node_modules/loopback/node_modules/express/lib/router/index.js:271:10)\n at /loopback-test/node_modules/loopback/node_modules/async/dist/async.js:486:20\n at replenish (/Repos/loopback-test/node_modules/loopback/node_modules/async/dist/async.js:879:29)\n at /loopback-test/node_modules/loopback/node_modules/async/dist/async.js:888:13\n at eachLimit$1 (/Repos/loopback-test/node_modules/loopback/node_modules/async/dist/async.js:3136:26)\n at Object.<anonymous> (/Repos/loopback-test/node_modules/loopback/node_modules/async/dist/async.js:920:20)\n at restApiHandler (/Repos/loopback-test/node_modules/loopback/server/middleware/rest.js:63:11)\n at Layer.handle [as handle_request] (/Repos/loopback-test/node_modules/loopback/node_modules/express/lib/router/layer.js:95:5)\n at trim_prefix (/Repos/loopback-test/node_modules/loopback/node_modules/express/lib/router/index.js:312:13)\n at /Repos/loopback-test/node_modules/loopback/node_modules/express/lib/router/index.js:280:7\n at Function.process_params (/Repos/loopback-test/node_modules/loopback/node_modules/express/lib/router/index.js:330:12)"
}
}
{
“错误”:{
“状态代码”:404,
“名称”:“错误”,
“消息”:“无法发布/api/Users”,
“状态”:404,
“堆栈”:“错误:无法在raiseUrlNotFoundError处发布/api/Users\n(/Repos/loopback test/node\u modules/loopback/server/middleware/url not found.js:20:17)\n在Layer.handle处[作为handle\u请求](/Repos/loopback test/node\u modules/loopback/node\u modules/express/lib/router/Layer.js:95:5)\n在trim\u前缀处(/Repos/loopback test/node_modules/loopback/node_modules/express/lib/router/index.js:312:13)\n at/Repos/loopback test/node_modules/loopback/node_modules/express/lib/router/index.js:280:7\n at Function.process_参数(/Repos/loopback测试/node_modules/loopback/node_modules/express/lib/router/index.js:330:12)\n下一步)(/Repos/loopback test/node_modules/loopback/node_modules/express/lib/router/index.js:271:10)\n at/loopback test/node_modules/loopback/node_modules/node_modules/loopback/node_modules/async/dist/node_modules/async.js:486:20\n at inful(/Repos/loopback/loopback测试/node_modules/loopback/node\n at/loopback test/node_modules/loopback/node_modules/async/dist/async.js:888:13\n at eachLimit$1(/Repos/loopback test/node_modules/loopback/node_modules/async/dist/async.js:3136:26)\n at对象。它提供了指向的(死)链接
尝试在不同于标准3000的端口上运行该项目,以防其他项目出现问题
设置数据库的通用模型。向数据库添加了用户和accesstoken,并尝试在REST API资源管理器中使用该accesstoken
我运行MacOSX,版本10.11.6。我安装了Node、npm和其他必要的工具
我遗漏了什么,或者我可以做些什么来避免出现raiseUrlNotFoundError,并访问我的项目的REST API?我知道这不是一个很好的解决方案,但它确实是一个不错的解决方案(使用win 10 64位)。
我在创建应用程序slc loopback
并选择loopback version 3.X时遇到了完全相同的错误,当重新创建应用程序并选择loopback version 2.X时,api工作正常,这可能是您的项目之间的不同之处。要使其运行,只需安装api explorer
npm install --save loopback-component-explorer --save
并将路线登记如下:
在根文件夹的目录结构中有一个名为“server”的文件夹。在“server”文件夹中创建一个名为“component config.json”的空文件,并将以下代码放入其中:
{
"loopback-component-explorer": {
"mountPath": "/explorer"
}
}
现在,您应该能够使用url打开资源管理器页面。该问题已通过loopback 3.x修复,因此请现在尝试一下。如果仍然存在相同问题,请按照以下说明操作:
要删除此警告,请禁用内置REST处理程序添加的上下文中间件
{
"remoting": {
"context": false,
// etc.
},
// etc.
}
有关更多信息:啊,没有尝试过!我今晚回家后会尝试。是的,就是这样。使用Loopback 2.x创建应用程序效果很好。正如您所建议的,现有项目也运行版本2.x。谢谢!谢谢。我目前没有做这个项目,也没有访问环境的权限,但很高兴听到应该这样做我现在在3.x工作。