![](/img/trans.png)
[英]HTML-Javascript - Filechooser showing only server-side files
[英]Meteor Files Collection showing up empty when trying to insert files on server-side?
我在我的 Meteor 项目中使用 Meteor 文件 package(来自https://github.com/VeliovGroup/Meteor-Files )。 我想设置一个文件集合,但在从服务器端填充它时遇到问题。
这是我在/server/main.js
中的相关代码:
import { Sources } from "/imports/db/sourcesCollection";
Meteor.startup(() => {
// code to run on server at startup
Sources.addFile("/images/bigLogo.png", {
fileName: "bigLogo.png",
type: "image/png",
fileId: "abc123AwesomeId",
meta: {},
})
...
这是sourcesCollection.js
:
import { FilesCollection } from "meteor/ostrio:files";
const Sources = new FilesCollection({ collectionName: "Sources" });
export { Sources };
bigLogo.png
是我项目中public/images
目录下的一个 png 图像文件,我已经在其他文件中成功地使用了它。 作为完整性检查,为了测试这是否是文件路径问题,我还尝试将我的图像移动到与我的server/main.js
文件相同的目录并将图像路径更改为./bigLogo.png
,但是徒劳无功。
当我的服务器启动时,我没有收到任何错误消息,所以看起来addFile()
正在工作,但是当我通过 meteor shell 在服务器端检查我的集合时,它总是显示为一个空集合。 这是我正在做的检查:
首先,我运行meteor shell
,然后import { Sources } from "imports/db/sourcesCollection.js"
,最后返回一个空数组[]
的 Sources.find Sources.find({}).fetch()
。
总而言之,我的问题是:如果我的代码在我的服务器启动时成功运行,为什么我的集合在我的 meteor shell 中显示为空?
编辑:在控制台中运行.addFile()
语句返回一个 FilesCollection object,并且在检查Sources.find({}).fetch()
时该集合仍然为空。
编辑 2:我添加了一个回调 function 来显示来自 addFile() 的错误。 我收到有关文件路径的 ENOENT 错误。 该图像绝对存在并且路径正确(我已经在同一文件夹和公共文件夹中尝试过),所以我不知道为什么会这样。 我试过重置项目,甚至重新安装 Meteor,但这也没有解决问题。
如果您遇到过这个问题,以下是为我解决的问题:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.