2016-04-27 143 views
0

編譯時我從1.8.10 TS編譯器這個錯誤在的NodeJS /快遞項目的環境中:錯誤:TS2345:與打字稿

Error:(17, 23) TS2345: Argument of type 'typeof "/Users/ME/Documents/Apps_And_Sites/Js_Apps/site/apps/directory/directory_contr...' is not assignable to parameter of type 'Router'. Property 'param' is missing in type 'typeof "/Users/ME/Documents/Apps_And_Sites/Js_Apps/site/apps/directory/directory_contr...'.

這裏是控制文件:

Import * as express from "express" 
import * as directory_models from "./directory_models" 
import * as forms from "formidable" 

let directory_router = express.Router() // HERE ///////// 


// GET 
directory_router.get("/list", function (req, res) { 

    function callback (err, data) { // function definition 
     res.render("directory_views.ejs", {datatest: data}) 
    } 

    directory_models.read(
     `SELECT link_title 
     FROM 
     links`, 
     callback) 
}) 

// POST 
directory_router.route("/create") 

// Display form page 
    .get(function (req, res) { 
     res.render("directory_post.ejs") 
    }) 

    // Process form 
    .post(function (req, res) { 
     let form = new forms.IncomingForm() 
     form.parse(req, function (err, fields, files) { 
      directory_models.create(fields) 
     }) 
     res.render("directory_post.ejs") 
    }) 


module.exports = directory_router 

這裏是Web應用程序的入口文件:

import * as express from "express" 
import * as lodash from "lodash" 
import * as directory from "./apps/directory/directory_controller" 


// Non require variables 
let app   = express() 
let port   = process.env.PORT || 3002 
import * as forms from "formidable"  


app.use("/directory", directory) // ERROR HERE //////// 
app.set("views", [__dirname + "/apps/directory/views/", "views"]) 
app.set("view engine", "ejs") 

app.listen(port, function() { 
    console.log("Server is listening on port:" + port) 
}) 

它不會阻止該項目能正常工作,但仍我想了解並擺脫這個錯誤。你知不知道怎麼 ?

回答

0

module.exports = directory_router

你應該這樣做:

export = directory_controller 
+0

它的確,解決問題謝謝。真的迷失在所有那些出口/進口。所編譯的代碼是相同的,所以我想這在打字稿環境中不是正確的語法。 –