![](/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.