tsコンパイラは、 'Document'型にプロパティが存在しないことを示します。Mongooseプロパティ 'x'が型 'Document'に存在しません
このため、モデル上のプロパティは設定できません。 Iコンソールにユーザオブジェクトを印刷する場合、私が得るすべては { "_id": "長い六角ID番号"}であり、以下のように私のモデルが設定されている
:
users.ts
import * as mongoose from 'mongoose';
import * as crypto from 'crypto';
import * as jwt from 'jsonwebtoken';
var userSchema = new mongoose.Schema({
email: {
type: String,
unique: true,
required: true
},
firstMidname: {
type: String,
required: true
},
lastName: {
type: String,
required: true
},
hash: String,
salt: String
});
userSchema.methods.setPassword = setPassword;
userSchema.methods.validPassword = validPassword;
userSchema.methods.generateJwt = generateJwt;
export = mongoose.model('User', userSchema);
を
API接続ポイント api.ts
import * as express from 'express';
import * as mongoose from 'mongoose';
import * as passport from 'passport';
var User = mongoose.model('User');
var router = express.Router();
router.post('/', createUser);
function createUser(req, res){
var user = new User();
console.log(user);
user.firstMidName = req.body.firstName;
user.lastName = req.body.lastName;
user.setPassword(req.body.password);
user.save((err) => {
console.log("saving user");
var token;
token = user.generateJwt();
res.status(200);
res.json({
'token': token
});
});
}
export = router;
私はどのように修正するか、この問題のトラブルシューティングを行うことができますか? user.save
ブロック内の何も実行されません。
EDIT: 2つのことは無関係のようです。私は今データベースに保存することができますが、タイスクリプトエラーが続く。これは予想される動作ですか?
'user.generateJwt();'関数は非同期ではありませんか? – chridam
そうではありません。私は簡潔さからそれを切り捨てました。また、行の保存ユーザーは、それが解決策ではありません問題 – xerotolerant