2016-08-07 10 views
0

Я попытался выяснить, чего я не вижу в этой головоломке. Node.js и Meteor.js. Метеор построен на Node.js, я это знаю. Но Meteor не работает должным образом с Node.js. Либо мне нужно сделать еще 20 шагов, чтобы получить тот же результат, который я не знаю, каковы они. Или между ними существует серьезная ошибка. Автономный Node.js выполняет команду ниже, просто отлично. Выполнение тех же команд в Meteor вызывает ошибки или неопределенные результаты. Пожелайте, чтобы у меня было почему, чтобы решить это, или им нужно исправить это, чтобы он работал так, как он должен работать.Проблемы node.js с файловой системой Meteor

examples #1 

var fs = require('fs'); 
fs.readFile('file.txt', 'utf8', function (err,data) { 
    if (err) { 
    return console.log(err); 
    } 
    console.log(data); 
}); 

example #2 

var jetpack = require('fs-jetpack'); 

var data = jetpack.read('file.txt'); 
console.log(data); 

example #3 

var fs = require ('fs'); 

var readMe = fs.readFileSync('file.txt', 'utf8'); 
console.log(readMe); 
+0

Метеор работает с использованием Fiber, что делает NodeJS синхронным. Meteor также использует DDP.connect для сервера. Метеор - это результат вызова DDP.connect. Предыдущие версии Meteor ( vijayst

+0

. Каков ваш вопрос? Какие сообщения об ошибках вы получаете? – chrisklaussner

+0

Когда я запускаю коды на метре. Я либо получаю: Ошибка: ENOENT: нет такого файла или каталога, open 'или я получаю файл undefined. Не могу ничего сделать, ни с результатами. Вы можете воссоздать проблему и увидеть проблему, которая у меня есть. Не так много кода – eazover

ответ

0

Вы не должны пытаться загружать файлы, как это потому, что вы не знаете, что структура папок выглядит. Meteor создает сборки из вашего каталога проектов, как в режиме разработки, так и в режиме производства. Это означает, что даже если у вас есть file.txt в папке проекта, он не попадает в одно и то же место в сборке (или вообще не включен в сборку).

Например, ваш код пытается прочитать файл из папки создания разработки .meteor/local/build/programs/server. Однако эта папка не содержит file.txt.

Решение: Магазин file.txt в private папке вашего проекта и использовать Assets.getText читать. Если вы все еще хотите использовать функции от fs для загрузки файла, вы можете получить абсолютный путь с помощью Assets.absoluteFilePath.