我目前正在做一些大学的课程作业,它本质上是一个用express编写的API。只要我们遵循规范,我们就可以使用其他包。
我尝试使用consign来自动加载我的模型、中间件和路由。我面临的问题是我们必须遵循的文件夹结构。
coursework
|-- artifact
| |-- server
| | |-- api
| | | |-- models
| | | | `-- stories.js
| | | |-- middleware
| | | | `-- stories.js
| | | `-- routers
| | | `-- stories.js
| | |-- node_modules
| | |-- package.json
| | |-- package-lock.json
| | `-- server.js
| `-- utilities
|-- node_modules
|-- webpages
|-- package.json
|-- package-lock.json
`-- test.js
字符串
在artifact
内部是我们所有代码的所在地,没有其他东西被触及。包含test.js
的根目录是我们将被评估的地方。从根目录我们运行npm test
(QUnit),然后它列出哪些测试通过了,哪些测试失败了。
问题是我们必须通过调用node artifact/server
从根目录启动服务器,这很好,因为它调用了artifact/server/server.js
。
在**artifact/server/server.js
内部,我有以下代码来初始化consign
**:
consign({ cwd: './artifact/server/api' })
.include('models')
.then('middleware')
.then('routers')
.into(app);
型
当我从root目录运行node artifact/server
时,我得到以下错误:
的数据
令人沮丧的是,如果我将consign的**cwd
**属性更改为api
,然后通过调用node server.js
启动artifact/server
内部的服务器,它工作得很好。
问题是我需要能够从根目录启动服务器。我完全卡住了,因为我不知道我如何可以修改委托工作从根目录。
有什么想法吗?
2条答案
按热度按时间mxg2im7a1#
我设法找到了解决我的问题的方法,并觉得我应该发布一个答案来帮助别人。
基本上,如上所示,我使用了这样的相对路径:
字符串
当从根目录调用时,会导致consign不工作。这可以通过使用**
path
来修复。我在
server.js
**文件的顶部添加了以下内容:型
然后将我的consigninit修改为:
型
这就解决了我的问题!
ws51t4hk2#
我遇到了同样的问题,并得到这个错误
字符串
.但随后读取Node's path documentation并尝试以下操作:
型
如果您需要将工作目录
cwd:
设置为根目录'./'
,这似乎是一个解决方案