我在一个目录中有一个bestiary.yml和test.rb,当我尝试加载我的.yml文件时
got_data_1 = YAML.load_file('bestiary.yml')
它给了我一个
/usr/lib/ruby/2.3.0/psych.rb:471:in `initialize': No such file or directory @ rb_sysopen
错误。但是当我尝试启动这个
时got_data = YAML.load(File.open(File.join(File.dirname(__FILE__), 'bestiary.yml')))
一切正常。为什么load_file方法不起作用以及这两种方法之间的区别是什么?
谢谢
答案 0 :(得分:0)
我认为这两个文件都在同一目录中,但您没有从该目录启动rb文件。如果我正确的话也可以试试
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
server.listen(4444);
var database = require('./database.js');
database.methods.connect();
// Add headers
app.use(function (req, res, next) {
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', 'X-Requested-With,content-type');
res.setHeader('Access-Control-Allow-Credentials', true);
next();
});
app.post('/login', function(req, res) {
console.log(req.body);
});
这项工作就在yml文件位于同一目录中并且从该目录启动rb文件时
got_data_1 = YAML.load_file(File.join(File.dirname(__FILE__), 'bestiary.yml'))