私はテストAPIを作成し、DBにテストレコードをほとんど追加しませんでした。私はデータをフェッチしたかった今APIを取得しようとしましたコンポーネントを反応させるために作成しました
は、私はそれが動作するかどうかを確認するために、データをCONSOLE.LOGしようとすると、私はこのエラー
Unhandled Rejection (SyntaxError): Unexpected token < in JSON at position 0
を得ているコンポーネントを反応させます。私はそれが事実と関係があると思っています。ポート8080でAPIサーバを実行し、3000にアプリケーションを反応させます(私は3000にAPiを切り替え、 "back arrow"をクリックしたときにconsole.logにデータが見えました。私は、APIがこのURLを「占有」していることを認識したサイトをリフレッシュしました)。
どうすれば修正できますか?ここにコードの重要な部分があります。もし私がもっとポストする必要があれば私に教えてください。
API(アプリケーション\ SRC \ APITEST \ index.js):APIで
const express = require('express');
const routes = require('./api.js');
const bodyParser = require('body-parser');
const mongoose = require('mongoose');
const app = express();
//connect to mongodb
mongoose.connect('mongodb://localhost/drugDB');
mongoose.Promise = global.Promise;
//serving files (folder name)
app.use(express.static('../../../src'));
app.use(bodyParser.json());
//initialize routes
app.use('/api', routes);
//error handling middleware
app.use(function(err, req, res, next){
res.send({error: err.message})
})
app.listen(process.env.port || 8080, function(){
console.log('listening')
})
2ファイル
const express = require('express');
const Drug = require('./models/drug');
const router = express.Router();
//get list of drugs
router.get('/leki', function (req, res) {
Drug.find({}).then(function(drugs){
res.send(drugs);
})
})
router.post('/leki', function (req, res, next) {
Drug.create(req.body).then(function (drug) {
res.send(drug);
}).catch(next);
})
router.put('/leki/:id', function (req, res, next) {
Drug.findByIdAndUpdate({ _id: req.params.id }, req.body).then(function() {
Drug.findOne({ _id: req.params.id }).then(function (drug) {
res.send(drug);
})
})
})
router.delete('/leki/:id', function (req, res, next) {
Drug.findByIdAndRemove({ _id: req.params.id }).then(function (drug) {
res.send({ type: drug })
});
})
module.exports = router;
成分を反応させる(APP \のsrc \コンポーネント\ MainPanel \ panel.js) :
componentDidMount(){
fetch('/api/leki').then(function(data){
console.log(data.json());
})
}
は、あなたが同様にあなたのLEKIエンドポイント用のコードをしてください追加することができ、エラーはあなたが編集した応答 – linasmnew
に戻ってJSONを受けていないことを示唆しているが、あなたは何を望むかということですリナース? –
はい、ありがとうございます。 – linasmnew