访问文件夹内部的文件,这是在SAIL中的config文件夹js(node js framework)

我必须访问位于config文件夹( /config/schemas/userSchemas.js )中的文件夹内的文件。 如何从我的控制器或服务中访问这个文件。 这个怎么做? 我已经尝试过sails.config.schemas.userSchemas 。 但它没有工作。 还有什么我可以尝试?

真的不build议您直接requireconfiguration文件。 Sails将需要它们,并将内容合并到sails.config ,完全忽略你的目录结构。 所以,如果你的config/schemas/userSchemas.js文件包含:

 module.exports.userSchemas = { foo: "bar" } 

然后,您将可以在应用程序中以sails.config.userSchemas访问该configuration。 注意第一行非常仔细 :如果你只是做module.exports = {...}那么对象将被合并到sails.config而不是 sails.config.userSchemas – 正如我之前所说,configuration合并在不考虑到目录结构。

如果你有需要加载的文件,你不想成为sails.config一部分,只需将它们放在项目的不同文件夹中(例如schemas ),并按照其他答案中的指定使用require

假设你有以下的目录结构

 myapp ├── app.js ├── _config │ ├── _schemas | | | ├── userSchemas.js | ├── otherSchemas.js | ├── _controller │ ├── _module1 | | | | | ├── userController.js | | ├── otherController.js | ├── otherController.js 

app.js ,您可以访问

 require('./config/schemas/userSchemas.js'); 

otherController.js ,你可以访问as

 require('../config/schemas/userSchemas.js'); 

userController.js ,你可以访问as

 require('../../config/schemas/userSchemas.js'); 

结束语: ..用于转到父目录(一个目录后面) . 用于当前目录

我希望这会帮助你在node.js中的目录结构

我会build议为path定义一个全局variables。

考虑你有以下目录结构(如@ arif的答案中所述)。

 myapp ├── app.js ├── _config │ ├── _schemas | | | ├── userSchemas.js | ├── otherSchemas.js | ├── _controller │ ├── _module1 | | | | | ├── userController.js | | ├── otherController.js | ├── otherController.js 

现在在你的app.js中写下如下的第一行。

 global.__base = __dirname + '/'; 

注意 :现在global .__ base指向/path-to-your-myapp-directory/myapp/

现在你可以访问userSchema.js或者其他任何文件。

在所有文件( app.jsuserSchemas.jsuserController.js )中,您可以要求userSchemas.js像这样

 require(global.__base + 'config/schemas/userSchemas.js');