I'm trying to use Loopback to create an api for my existing database. When I try to 'discover' the model, I get this error:
Message: Cannot find module 'negotiator'
Request: /workspace/api/DataSourceDefinitions/server.tweetvtds/testConnection
Staus: 500
Error: Cannot find module 'negotiator'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (~/lb/node_modules/loopback/node_modules/express/node_modules/accepts/index.js:1:80)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
I read elsewhere that I should try:
# uninstall the existing version
npm uninstall -g generator-loopback
# install it again
npm install -g generator-loopback
But that didn't help. What does this error mean and how do I fix it?
It turns out that the initial build of the project didn't fully complete.
During the initial build, Loopback printed the following:
I'm all done. Running npm install for you to install the required
dependencies. If this fails, try running the command yourself.
create .editorconfig
create .jshintignore
create .jshintrc
create README.md
create server/boot/authentication.js
create server/boot/explorer.js
create server/boot/rest-api.js
create server/boot/root.js
create server/middleware.json
create server/server.js
create .gitignore
create client/README.md
It failed to complete this step; however, running 'npm install' myself didn't fix the problem for some reason. So, I just built a new loopback project and everything is working fine now.