因此,如果您下载可以在https://github.com/parse-community/parse-server-example找到的 Parse 平台示例 nodejs 示例,您会注意到 Parse 根本没有被导入/需要。我知道他们并没有在项目中显式调用 Parse,但这毕竟是您进行查询甚至初始化项目的方式。
所以我的问题是,我有一个打字稿设置,但是如果我像这样导入 Parse
import * as Parse from 'parse/node';
每当我进行查询时,它都会抛出这个错误。
ParseError: XMLHttpRequest 失败: {"UNSENT":0,"OPENED":1,"HEADERS_RECEIVED":2,"LOADING":3,"DONE":4,"readyState":4,"responseText":""," responseXML":"","status":410,"statusText":null,"withCredentials":false}
我在我的使用这些版本package.json
:
"parse": "^2.7.1",
"parse-server": "^2.3.3",
我尝试使用 var Parse = require('parse/node') 以老式方式导入 Parse,导入浏览器版本 import * as Parse from 'parse'; 这只是告诉我尚未设置 localstorage,显然是因为它的节点不是浏览器。
我尝试通过使用和不使用导入进行简单查询来运行示例项目并获得一致的结果,所以它似乎不是打字稿问题。
我也尝试了多个版本的 Parse,即使他们在示例项目中使用的 1.8 版本也得到了相同的结果。
import express from "express";
import * as PS from 'parse-server';
import path from "path";
import {config} from 'dotenv';
import bodyParser from "body-parser";
import cors from 'cors';
import * as Parse from 'parse/node';
config({path:'./env/dev_remote.env'});
const app = express();
const port = process.env.PORT || 1337;
const ParseServer = PS.ParseServer;
app.use(bodyParser.urlencoded({ extended: false }))
app.use(bodyParser.json())
app.use(cors());
var api = new ParseServer({
databaseURI: process.env.dbUrl + '/' + process.env.dbName,
appId:'totalProjectServer',
masterKey:'masterparse',
serverURL:'http://localhost:1337/parse'
});
app.use('/parse', api);
Parse.initialize('totalProjectServer');
app.get('/', (req, res) => {
let query = new Parse.Query('NodeExpense');
query.find().then((data)=>{
res.status(200).send(data);
})
.catch((err)=>{
res.status(500).send(err);
})
})
app.listen(port,()=>{
console.log(`Server running on ${port}`);
})
我只想让我的 IntelliSense 工作并让打字稿停止抱怨,因为我没有导入 Parse。如果您使用未导入的函数,它看起来就是错误的。