2017-12-07 3 views
0

Ich baute eine index.js-Datei, die SMS sendet auf der Grundlage der Körpereingabe beim Posten mit Postman. Der Code funktioniert und sieht wie folgt aus (ich habe meine apikey und apiSecret für diese Vorschau versteckt)Node.js POST-Methode Fehler 404

const express = require('express'); 
const bodyParser = require('body-parser'); 
const app = express(); 
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({ extended: true })); 
const Nexmo = require('nexmo'); 
const nexmo = new Nexmo({ 
    apiKey: 'hidden.apiKey', 
    apiSecret: 'hidden.apiSecret' 
    }); 

app.post('/send', (req, res) => { 
// Sending SMS via Nexmo 
nexmo.message.sendSms(
    '4542542445', req.body.toNumber, req.body.message, {type: 'unicode'}, 
    (err, responseData) => {if (responseData) {console.log(responseData)}} 
); 
}); 
const server = app.listen(3000); 
console.log("starting server") 

gegegeben fein und Sie erhalten eine SMS-Nachricht, wenn ich die Datei ausführen, und ein Post an die Route mit Postman .

Ich versuche, dasselbe in meinem größeren Projekt zu implementieren, wo ich separate Client- und Serverordner habe, die mein Frontend und Backend darstellen.

Wenn ich den Code zu meiner app.js-Datei hinzufügen, stoße ich auf Statuscode 404 nicht gefunden Fehler. Hier ist der Code meiner app.js:

const express = require('express') 
const bodyParser = require('body-parser') 
const cors = require('cors') 
const morgan = require('morgan') 
const {sequelize} = require('./models') 
const config = require('./config/config') 
const Nexmo = require('nexmo') 

const app = express() 

app.use(morgan('combined')) 

app.use(bodyParser.json()) 
app.use(bodyParser.urlencoded({ extended: false})) 

app.use(cors()) 

require('./routes')(app) 

sequelize.sync() 
.then(() => { 
    app.listen(config.port) 
    console.log(`Server started on port ${config.port}`) 
}) 

const nexmo = new Nexmo({ 
apiKey: 'hidden.apiKey', 
apiSecret: 'hidden.apiSecret' 
}, {debug: true}) 

app.post('/send', (req, res) => { 
// Sending SMS via Nexmo 
nexmo.message.sendSms(
    '4542542445', req.body.toNumber, req.body.message, {type: 'unicode'}, 
    (err, responseData) => {if (responseData) {console.log(responseData)}} 
); 
    }); 

ich um Hilfe bitten werde, um zu versuchen, herauszufinden, was falsch ist und warum es nicht um die Strecke nicht trifft, statt Statuscode Rückkehr 404.

ich kann Teilen Sie mein GitHub oder wir können über Zwietracht sprechen: Soko # 8667

Ich schätze Ihre Gedanken und helfen.

+0

sieht aus wie Ihre App startet, wenn diese Funktion in Ordnung ist: 'sequelize.sync()'. startet deine App überhaupt? – LMokrane

+0

meine aktuelle App funktioniert perfekt, ohne Probleme. Wenn ich nexmo message route hinzufüge, scheint es die Route irgendwie nicht zu treffen –

+0

was ist diese Zeile 'require ('./ routes') (app)' für? – LMokrane

Antwort

0

Routen in Express sollte geschrieben werden:

let route = require('routes'); 
app.use('/', route); 
0

ich es Arbeit machen verwaltet.

Ich habe neue Route hinzugefügt, während mein Server lief.

Ich habe meinen PC neu gestartet und Server und Client erneut ausgeführt und es scheint Arbeit.

+0

Warum versuchen Sie nicht, 'nodemon' zu verwenden, um solche Änderungen zu automatisieren? Es wird dir den Stress ersparen, deinen Server neustarten zu müssen – nonybrighto

+0

Nun, ich benutze nodemon und deshalb hatte ich keine Ahnung, warum es nicht funktionierte (die neue Route). Ich habe erwartet, dass nodemon das macht, aber ich denke, dass es mit offenem Port anders war. –