如何读取/ / server路径中的meteor应用程序中的公共目录。
我尝试使用原生'fs'
包,但我一直收到错误的文件/目录。
var fs = Npm.require('fs');
var files = fs.readdirSync('/public/soundfiles/');
是否有人使用文件系统包读取流星应用程序中的静态文件?
答案 0 :(得分:4)
我了解到,如果您没有在外面显示文件,最好将文件上传到您的私人文件夹中。 在我的例子中,我需要存储XML上传并处理它们。 起初我将XML写入公共文件夹,但这会触发重新加载。 然后我将上传文件夹重命名为/public/.#uploads,这将停止Meteor的重新加载,但是又一次......它在构建期间完全忽略了该文件夹,并且构建中不存在上传的文件夹(在此过程中抛出ENOENT错误)读取)。
所以我想出最好把文件放在/ private / files中,然后阅读如下:
result = fs.readdirSync('assets/app/files')
私人文件夹中的所有内容都将被移动到Assets文件夹,其中在运行时期间有一个APP文件夹可用(您在构建文件夹结构中没有看到)。
只需简单地转储result = fs.readdirSync('.')
即可查看您所在的文件夹并查看结构。
*** ***** UPDATE
在private
文件夹中本地放置文件仍会触发meteor重建/更新(可能不在生产中......)所以我发现另一个解决方案使用UploadServer来定义上传目录:
https://github.com/tomitrescak/meteor-uploads
答案 1 :(得分:2)
访问没有“/ public”部分的文件。在正在运行的Meteor应用程序中,public
目录将成为您的根目录,/public/whatever
处的所有内容都可以在/whatever
访问。
此外,如果你正在玩文件,你可能会发现这些有用:
答案 2 :(得分:2)
这不再是真的。对于Meteor 0.8,文件夹“../client/app”是公开的。因此,使用fs.readdirSync('../ client / app')公开获取文件和文件夹。
答案 3 :(得分:2)
对于meteor 1.0.2 public是/web.browser/app/ 通过输入.meteor dir进行检查 linux中的总路径/home/user/your_app_name/.meteor/local/build/programs/web.browser/app/ 要获得root是`process.env.PWD或process.cwd()。 我不确定它的工作是否已经部署。
_meteor_bootstrap_.serverDir +'/assets/app'
这是私人文件夹的路径。
答案 4 :(得分:2)
这对Meteor 1.0来说很有用:
import pandas as pd
DF = pd.read_csv('mydata.csv')
for Admitted_Date, Discharged_Date in DF
pd.to_datetime(mydata.pop('Date'), format="%b%Y")
答案 5 :(得分:1)
对于Meteor 1.4,请使用服务器资产。 请参阅有关资产的官方文档 http://docs.meteor.com/api/assets.html
答案 6 :(得分:0)
在服务器上,您可以使用fs
访问流星目录树的任何部分,而不仅仅是/public
import fs from 'fs';
const rd = process.env.PWD;
const obj = JSON.parse(fs.readFileSync(`${rd}/private/file.json`));
将读取并解析流星应用程序目录根目录下private/file.json
处的json文件。