错误:TS2345:与打字稿

问题描述:

编译时我从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) 
}) 

它不会阻止该项目能正常工作,但仍我想了解并摆脱这个错误。你知不知道怎么 ?

module.exports = directory_router

你应该这样做:

export = directory_controller 
+0

它的确,解决问题谢谢。真的迷失在所有那些出口/进口。所编译的代码是相同的,所以我想这在打字稿环境中不是正确的语法。 –