System Information
- **Strapi Version: v4.17.1
- Operating System: mac
- Database: postgres
- Node Version: v18.19
- NPM Version: 10.2.3
- Yarn Version: 1.22.21
I have creating a custom api, but it is failing:
controller based code
// ./controller/meilisearch.ts
import { MeiliSearch } from 'meilisearch';
const meilisearch = new MeiliSearch({ host: 'http://localhost:7700' });
export const meilisearchService = {
searchString: async (query: string) => {
try {
const { results } = await meilisearch.getRawIndexes()
// const searchResults = await meilisearch.index('your_index').search(query);
return results;
} catch (error) {
throw new Error('Error while searching in Meilisearch.');
}
},
};
router class:
// ./routes/meilisearch.ts
export default {
routes: [
{
method: 'GET',
path: '/meilisearch/search',
handler: 'meilisearchService.searchString', // Check this path
config: {
policies: [],
},
},
// ... other routes
],
};
service class:
// ./services/meilisearch.ts
import { MeiliSearch } from 'meilisearch';
const meilisearch = new MeiliSearch({ host: 'http://localhost:7700' });
export const meilisearchService = {
searchString: async (query: string) => {
try {
const searchResults = await meilisearch.index('your_index').search(query);
return searchResults;
} catch (error) {
throw new Error('Error while searching in Meilisearch.');
}
},
};
Error I am getting:
TypeError: Error creating endpoint GET /meilisearch/search: Cannot read ││ properties of undefined (reading 'searchString') ││ at getAction (/Users/ankitthakur/Documents/workspace/samples/strapi-cms ││ -samples/newApp/node_modules/@strapi/strapi/dist/services/server/compos ││ e-endpoint.js:104:24)