1
我會開始說,我不知道這是否是問題,但它可能是(希望)。Expressios promisify with axios
我正在使用axios將數據發佈到API。
數據成功發佈,但從未獲取.then函數。即:
createPage(page) {
instance.post('/admin/createPage',page).then((response) => {
console.log(response) <------- Never gets to.
}).catch((error) => {
console.log(error)
})
}
我沒有得到console.log(響應)。
我最終增加了'es6-promisify',但是我該如何設置呢?
僅供參考,這裏有重要的文件:
server.js:
import express from 'express'
import session from 'express-session'
import bodyParser from 'body-parser'
import promisify from 'es6-promisify'
import cors from 'cors'
import low from 'lowdb'
import fileAsync from 'lowdb/lib/storages/file-async'
import { initDb } from './db/index.js'
import routes from './routes/index.js'
const app = express();
const db = low('./core/db/.index.json', { storage: fileAsync })
app.use(cors())
app.set('db', db);
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: true }));
app.use((req,res, next) => {
next();
});
app.use('/', routes);
app.set('port', process.env.PORT || 1337);
if(!db.has('pages').value()) {
initDb(db);
}
const server = app.listen(app.get('port'),() => {
console.log(`Express running → PORT ${server.address().port}`);
});
app.js:
import React, { Component } from 'react';
import {
BrowserRouter as Router,
Route
} from 'react-router-dom'
import axios from 'axios'
import Header from '../components/Header'
import Dashboard from './Dashboard'
import AddEditPage from './AddEditPage'
const instance = axios.create({baseURL: 'http://localhost:1337'})
class App extends Component {
constructor(props) {
super(props);
this.state = {
"pages": []
}
this.createPage = this.createPage.bind(this)
this.getPages = this.getPages.bind(this)
}
componentDidMount() {
this.getPages()
}
getPages() {
instance.get('/admin/listPages')
.then(
(response) => {
this.setState(
{
"pages": response.data
}
)
})
.catch((error) => {console.log(error)})
}
createPage(page) {
instance.post('/admin/createPage',page).then((response) => {
console.log(response)
}).catch((error) => {
console.log(error)
})
}
render() {
return (
<Router>
<div className="Router">
<div className="Navbar">
<Header />
</div>
<div className="Wrapper">
<Route exact path="/" render={() => (
<Dashboard pages={this.state.pages} />
)} />
<Route path="/admin/new-page" render={() => (
<AddEditPage createPage={this.createPage} />
)} />
<Route path="/admin/edit-page/:id" render={() => (
<AddEditPage />
)} />
</div>
</div>
</Router>
);
}
}
export default App;