簡體   English   中英

Meteor 嘗試在服務器端插入文件時文件集合顯示為空?

[英]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,但這也沒有解決問題。

如果您遇到過這個問題,以下是為我解決的問題:

Meteor:錯誤:嘗試使用 node-gd 訪問圖像時出現 ENOENT

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM