子路由不使用koa-router在单独的文件中工作

时间:2016-11-29 12:38:12

标签: node.js koa koa-router

我的koa@next应用具有以下结构。我使用koa-router@next进行路由:

./ app.js

const Koa = require('koa');
const router = require('koa-router')();

const index = require('./routes/index');

const app = new Koa();

router.use('/', index.routes(), index.allowedMethods());
app
  .use(router.routes())
  .use(router.allowedMethods());

module.exports = app;

./路由/ index.js

const router = require('koa-router')();

router.get('/', (ctx, next) => {
  ctx.body = 'Frontpage';
});

router.get('/hello', (ctx, next) => {
  ctx.body = 'Hello, World!';
});

module.exports = router;

我在Not Found路线上收到/hello错误。

依赖版本:

"dependencies": {
  "koa": "^2.0.0-alpha.7",
  "koa-router": "^7.0.1",
},

koa-router v7.1.0相同。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

像这样重组应用程序可以解决问题。我想这真的是时候放弃Express了。

./ app.js

Imports System.Printing
Imports System.Text
Imports System.IO
Imports System.Collections
Imports System.Management
Imports System.Drawing.Printing
Imports System.Collections.ObjectModel
Imports System.Collections.Specialized

Public Class Form1
    Dim localPrintServer2 As LocalPrintServer
    Dim defaultPrintQueue2 As PrintQueue
    Dim listSentToPrinter As New List(Of String)()
    Dim listPrinterQueue As New List(Of String)()
    Dim listJobsInQueue As New List(Of String)()
    ' Private m_queueObList As New ObservableCollection(Of String)
    Public queueObList As New ObservableCollection(Of String)

      Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
             AddHandler queueObList.CollectionChanged, AddressOf Me.OnCollectionChanged
    End Sub

    Private Sub OnCollectionChanged(sender As Object, e As NotifyCollectionChangedEventArgs)
        Try

        Dim obsSender As ObservableCollection(Of String) = TryCast(sender, ObservableCollection(Of String))
        Dim editedOrRemovedItems As New List(Of String)()

           getPrintQueue()


        If e.Action = NotifyCollectionChangedAction.Add Then
            MsgBox("Item Added")
            'search listSentToPrinter

        End If

        If e.Action = NotifyCollectionChangedAction.Remove Then
            MsgBox("Item Removed")
        End If

              'Label1.Text = queueObList.Count

        Dim action As NotifyCollectionChangedAction = e.Action

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub


    Private Sub getPrintQueue()
        Try

            localPrintServer2 = New LocalPrintServer()
            defaultPrintQueue2 = LocalPrintServer.GetDefaultPrintQueue()
            Timer1.Enabled = True
            Timer1.Interval = 50
            Dim jobs As PrintJobInfoCollection = defaultPrintQueue2.GetPrintJobInfoCollection
            For Each job As PrintSystemJobInfo In jobs
                'listPrinterQueue.Add(job.Name)
                queueObList.Add(job.Name)

                Label1.Text = queueObList.Count
                'lstPrinterQueue.Items.Add(job.Name & "  " & job.JobStatus)
            Next

        Catch ex As Exception
            MessageBox.Show(ex.Message)
        End Try
    End Sub

    Private Sub Iletarerate()
        ListBox1.Items.Clear()
        For Each item As String In queueObList
            ListBox1.Items.Add(item)
        Next
    End Sub


    Public Sub FindJobInQueue(ByVal item As String)
        If listJobsInQueue.Contains(item) Then

        Else

            If (listPrinterQueue.Count >= 1) Then
                If listPrinterQueue.Contains(item) Then
                    lstJobInQueue.Items.Add("Found  " & item)
                    listJobsInQueue.Add(item)
                    'Update stutus if successfully updated
                    listSentToPrinter.Remove(item)
                End If
            Else
                ' list is empty
            End If
        End If
    End Sub



    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
        queueObList.RemoveAt(0)
        Iletarerate()
    End Sub
End Class

./路由/ index.js

import Koa from 'koa';
import index from './routes/index';

const app = new Koa();

app.use(index.routes(), index.allowedMethods());

export default app;
相关问题