2017-07-26 22 views
0

我的API鏈接建設中檢索數據這是我取的任務,我有錯誤。它顯示在控制檯鉻: VM4399:1 GET https://localhost:3090/tasks網:: ERR_CONNECTION_CLOSED我不能從節點,快速,MongoDB的,Reactjs

當我在tasks_reducers.js CONSOLE.LOG(action.payload)。這是我回到

Error: Network Error 
 
    at createError (bundle.js:35834) 
 
    at XMLHttpRequest.handleError (bundle.js:35686)

我已經運行在服務器和客戶端的錯誤。 可以在這裏請人幫我。提前致謝。 這裏是我的代碼:

這是我的服務器目錄:

服務器/控制器/ TodoController.js

exports.listAll = function(req, res, next) { 
 
    Task.find({}, function(err, task) { 
 
    if(err) { return next(err); } 
 

 
    res.json(task); 
 
    }); 
 
};

服務器/模型/ todos.js

const mongoose = require('mongoose'); 
 
const Schema = mongoose.Schema; 
 

 
const todoSchema = new Schema({ 
 
    title: { 
 
    type: String, 
 
    required: true 
 
    }, 
 
    created_date: { 
 
    type: Date, 
 
    default: Date.now 
 
    }, 
 
    status: { 
 
    type: [{ type: String, enum:['pending', 'ongoing', 'completed'] }], 
 
    default: ['pending'] 
 
    } 
 
}); 
 

 
const ModelClass = mongoose.model('Todos', todoSchema); 
 

 
module.exports = ModelClass;

服務器/ router.js

const TodoController = require('./controller/TodoController'); 
 

 
module.exports = function(app) { 
 
    app.get('/tasks', TodoController.listAll); 
 
    app.post('/tasks', TodoController.createTask); 
 
    app.put('/tasks/:taskId', TodoController.updateTask); 
 
    app.delete('/tasks/:taskId', TodoController.deleteTask); 
 
}

服務器/ index.js

const express = require('express'); 
 
const mongoose = require('mongoose'); 
 
const bodyParser = require('body-parser'); 
 
const morgan = require('morgan'); 
 
const http = require('http'); 
 
const cors = require('cors'); 
 

 
const app = express(); 
 
const router = require('./router'); 
 

 
// DB setup 
 
mongoose.connect('mongodb://localhost:todos/todos'); 
 

 
// App setup 
 
app.use(morgan('combined')); 
 
app.use(cors({ origin: "http://localhost:8080",credentials: true })); 
 
app.use(bodyParser.json({ type: '*/*' })); 
 
router(app); 
 

 
// Server setup 
 
const port = process.env.port || 3090; 
 
const server = http.createServer(app); 
 
server.listen(port); 
 
console.log('Server listening on:', port);

這些都是我的客戶端:

客戶端/ src目錄/動作/ index.js

import axios from 'axios'; 
 
import { FETCH_TASKS } from './types'; 
 

 
const ROOT_URL = 'https://localhost:3090/tasks'; 
 

 
export function fetchTasks() { 
 
    const request = axios.get(ROOT_URL); 
 
    return { 
 
    type: FETCH_TASKS, 
 
    payload: request 
 
    }; 
 
}

客戶端/ src目錄/動作/ types.js

export const FETCH_TASKS = 'fetch_tasks';

客戶端/ src目錄/reducers/index.js

import { combineReducers } from 'redux'; 
 
import taskReducer from './tasks_reducer'; 
 

 
const rootReducer = combineReducers({ 
 
    tasks: taskReducer 
 
}); 
 

 
export default rootReducer;

客戶/ SRC /減速器/ tasks_reducer.js

import _ from 'lodash'; 
 
import { FETCH_TASKS } from '../actions/types'; 
 

 
export default function(state={}, action) { 
 
    switch(action.type) { 
 
    case FETCH_TASKS: 
 
     console.log(action.payload); 
 
     return state; 
 
    default: 
 
     return state; 
 
    } 
 
}

客戶/ SRC /減速器/應用程序。JS

import _ from 'lodash'; 
 
import React, { Component } from 'react'; 
 
import { connect } from 'react-redux'; 
 
import * as actions from '../actions'; 
 

 
class App extends Component { 
 
    componentWillMount() { 
 
    this.props.fetchTasks(); 
 
    } 
 

 
    render() { 
 
    return (
 
     <div> 
 
     <h1>Todos</h1> 
 
     </div> 
 
    ); 
 
    } 
 
} 
 

 
function mapStateToProps(state) { 
 
    return { tasks: state.tasks }; 
 
} 
 

 
export default connect(mapStateToProps, actions)(App);

回答

0

在你server/index.js

你創造Express實例,並把它傳遞到路由器

const app = express() 
... 
router(app) 

但你使用一個不同的實例來創建服務器。

你應該做

app.listen(port) 

要創建服務器

+0

謝謝,但我沒有,我仍然得到了同樣的錯誤。任何解決方案 – dnp1204